From 735f53e8e9b03072063d33bdb286e334600c0fe5 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 27 Jan 2025 11:49:26 -0800 Subject: [PATCH 01/36] change rust-sdk to aa3be1b3f1bdd3c1cb0fed686ebeeb30c51c2e64 --- livekit-rtc/livekit/rtc/__init__.py | 2 + livekit-rtc/livekit/rtc/_ffi_client.py | 2 +- .../livekit/rtc/_proto/audio_frame_pb2.py | 176 +++---- .../livekit/rtc/_proto/audio_frame_pb2.pyi | 55 ++- livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/ffi_pb2.py | 52 ++- livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi | 82 +++- livekit-rtc/livekit/rtc/_proto/handle_pb2.py | 12 +- .../livekit/rtc/_proto/participant_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 240 ++++++---- livekit-rtc/livekit/rtc/_proto/room_pb2.pyi | 430 ++++++++++++++++-- livekit-rtc/livekit/rtc/_proto/rpc_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/stats_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/track_pb2.py | 12 +- .../rtc/_proto/track_publication_pb2.py | 12 +- .../livekit/rtc/_proto/video_frame_pb2.py | 12 +- .../livekit/rtc/_proto/video_frame_pb2.pyi | 5 +- livekit-rtc/livekit/rtc/audio_stream.py | 18 +- livekit-rtc/rust-sdks | 2 +- 19 files changed, 893 insertions(+), 267 deletions(-) diff --git a/livekit-rtc/livekit/rtc/__init__.py b/livekit-rtc/livekit/rtc/__init__.py index b6784af7..db0d67de 100644 --- a/livekit-rtc/livekit/rtc/__init__.py +++ b/livekit-rtc/livekit/rtc/__init__.py @@ -32,6 +32,7 @@ from .audio_frame import AudioFrame from .audio_source import AudioSource from .audio_stream import AudioFrameEvent, AudioStream +from .audio_filter import AudioFilter from .chat import ChatManager, ChatMessage from .e2ee import ( E2EEManager, @@ -94,6 +95,7 @@ "AudioFrame", "AudioSource", "AudioStream", + "AudioFilter", "AudioFrameEvent", "LocalParticipant", "Participant", diff --git a/livekit-rtc/livekit/rtc/_ffi_client.py b/livekit-rtc/livekit/rtc/_ffi_client.py index 0c7465e1..3b191b4d 100644 --- a/livekit-rtc/livekit/rtc/_ffi_client.py +++ b/livekit-rtc/livekit/rtc/_ffi_client.py @@ -212,7 +212,7 @@ def __init__(self) -> None: self._queue = FfiQueue[proto_ffi.FfiEvent]() ffi_lib.livekit_ffi_initialize( - ffi_event_callback, True, b"python", __version__.encode("ascii") + ffi_event_callback, False, b"python", __version__.encode("ascii") ) @atexit.register diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index 503e58ae..c0a12a00 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: audio_frame.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'audio_frame.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -16,7 +26,7 @@ from . import track_pb2 as track__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\x86\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xca\x01\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc1\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x05 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x85\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x07 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"3\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\"N\n\x1dLoadAudioFilterPluginResponse\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,84 +34,88 @@ 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 - _globals['_SOXQUALITYRECIPE']._serialized_start=3462 - _globals['_SOXQUALITYRECIPE']._serialized_end=3601 - _globals['_SOXFLAGBITS']._serialized_start=3604 - _globals['_SOXFLAGBITS']._serialized_end=3755 - _globals['_AUDIOSTREAMTYPE']._serialized_start=3757 - _globals['_AUDIOSTREAMTYPE']._serialized_end=3822 - _globals['_AUDIOSOURCETYPE']._serialized_start=3824 - _globals['_AUDIOSOURCETYPE']._serialized_end=3866 + _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3636 + _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3710 + _globals['_SOXQUALITYRECIPE']._serialized_start=3713 + _globals['_SOXQUALITYRECIPE']._serialized_end=3852 + _globals['_SOXFLAGBITS']._serialized_start=3855 + _globals['_SOXFLAGBITS']._serialized_end=4006 + _globals['_AUDIOSTREAMTYPE']._serialized_start=4008 + _globals['_AUDIOSTREAMTYPE']._serialized_end=4073 + _globals['_AUDIOSOURCETYPE']._serialized_start=4075 + _globals['_AUDIOSOURCETYPE']._serialized_end=4117 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_start=64 - _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=198 - _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=200 - _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_end=273 - _globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_start=276 - _globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_end=478 - _globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_start=480 - _globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_end=565 - _globals['_NEWAUDIOSOURCEREQUEST']._serialized_start=568 - _globals['_NEWAUDIOSOURCEREQUEST']._serialized_end=755 - _globals['_NEWAUDIOSOURCERESPONSE']._serialized_start=757 - _globals['_NEWAUDIOSOURCERESPONSE']._serialized_end=830 - _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_start=832 - _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_end=934 - _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_start=936 - _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_end=981 - _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_start=983 - _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_end=1043 - _globals['_CLEARAUDIOBUFFERREQUEST']._serialized_start=1045 - _globals['_CLEARAUDIOBUFFERREQUEST']._serialized_end=1093 - _globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_start=1095 - _globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_end=1121 - _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_start=1123 - _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_end=1149 - _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_start=1151 - _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_end=1233 - _globals['_REMIXANDRESAMPLEREQUEST']._serialized_start=1236 - _globals['_REMIXANDRESAMPLEREQUEST']._serialized_end=1383 - _globals['_REMIXANDRESAMPLERESPONSE']._serialized_start=1385 - _globals['_REMIXANDRESAMPLERESPONSE']._serialized_end=1465 - _globals['_NEWSOXRESAMPLERREQUEST']._serialized_start=1468 - _globals['_NEWSOXRESAMPLERREQUEST']._serialized_end=1752 - _globals['_NEWSOXRESAMPLERRESPONSE']._serialized_start=1754 - _globals['_NEWSOXRESAMPLERRESPONSE']._serialized_end=1862 - _globals['_PUSHSOXRESAMPLERREQUEST']._serialized_start=1864 - _globals['_PUSHSOXRESAMPLERREQUEST']._serialized_end=1947 - _globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_start=1949 - _globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_end=2024 - _globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_start=2026 - _globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_end=2078 - _globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_start=2080 - _globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_end=2156 - _globals['_AUDIOFRAMEBUFFERINFO']._serialized_start=2158 - _globals['_AUDIOFRAMEBUFFERINFO']._serialized_end=2270 - _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_start=2272 - _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_end=2393 - _globals['_AUDIOSTREAMINFO']._serialized_start=2395 - _globals['_AUDIOSTREAMINFO']._serialized_end=2458 - _globals['_OWNEDAUDIOSTREAM']._serialized_start=2460 - _globals['_OWNEDAUDIOSTREAM']._serialized_end=2571 - _globals['_AUDIOSTREAMEVENT']._serialized_start=2574 - _globals['_AUDIOSTREAMEVENT']._serialized_end=2733 - _globals['_AUDIOFRAMERECEIVED']._serialized_start=2735 - _globals['_AUDIOFRAMERECEIVED']._serialized_end=2808 - _globals['_AUDIOSTREAMEOS']._serialized_start=2810 - _globals['_AUDIOSTREAMEOS']._serialized_end=2826 - _globals['_AUDIOSOURCEOPTIONS']._serialized_start=2828 - _globals['_AUDIOSOURCEOPTIONS']._serialized_end=2929 - _globals['_AUDIOSOURCEINFO']._serialized_start=2931 - _globals['_AUDIOSOURCEINFO']._serialized_end=2994 - _globals['_OWNEDAUDIOSOURCE']._serialized_start=2996 - _globals['_OWNEDAUDIOSOURCE']._serialized_end=3107 - _globals['_AUDIORESAMPLERINFO']._serialized_start=3109 - _globals['_AUDIORESAMPLERINFO']._serialized_end=3129 - _globals['_OWNEDAUDIORESAMPLER']._serialized_start=3131 - _globals['_OWNEDAUDIORESAMPLER']._serialized_end=3248 - _globals['_SOXRESAMPLERINFO']._serialized_start=3250 - _globals['_SOXRESAMPLERINFO']._serialized_end=3268 - _globals['_OWNEDSOXRESAMPLER']._serialized_start=3270 - _globals['_OWNEDSOXRESAMPLER']._serialized_end=3383 + _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=257 + _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=259 + _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_end=332 + _globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_start=335 + _globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_end=596 + _globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_start=598 + _globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_end=683 + _globals['_NEWAUDIOSOURCEREQUEST']._serialized_start=686 + _globals['_NEWAUDIOSOURCEREQUEST']._serialized_end=873 + _globals['_NEWAUDIOSOURCERESPONSE']._serialized_start=875 + _globals['_NEWAUDIOSOURCERESPONSE']._serialized_end=948 + _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_start=950 + _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_end=1052 + _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_start=1054 + _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_end=1099 + _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_start=1101 + _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_end=1161 + _globals['_CLEARAUDIOBUFFERREQUEST']._serialized_start=1163 + _globals['_CLEARAUDIOBUFFERREQUEST']._serialized_end=1211 + _globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_start=1213 + _globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_end=1239 + _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_start=1241 + _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_end=1267 + _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_start=1269 + _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_end=1351 + _globals['_REMIXANDRESAMPLEREQUEST']._serialized_start=1354 + _globals['_REMIXANDRESAMPLEREQUEST']._serialized_end=1501 + _globals['_REMIXANDRESAMPLERESPONSE']._serialized_start=1503 + _globals['_REMIXANDRESAMPLERESPONSE']._serialized_end=1583 + _globals['_NEWSOXRESAMPLERREQUEST']._serialized_start=1586 + _globals['_NEWSOXRESAMPLERREQUEST']._serialized_end=1870 + _globals['_NEWSOXRESAMPLERRESPONSE']._serialized_start=1872 + _globals['_NEWSOXRESAMPLERRESPONSE']._serialized_end=1980 + _globals['_PUSHSOXRESAMPLERREQUEST']._serialized_start=1982 + _globals['_PUSHSOXRESAMPLERREQUEST']._serialized_end=2065 + _globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_start=2067 + _globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_end=2142 + _globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_start=2144 + _globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_end=2196 + _globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_start=2198 + _globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_end=2274 + _globals['_AUDIOFRAMEBUFFERINFO']._serialized_start=2276 + _globals['_AUDIOFRAMEBUFFERINFO']._serialized_end=2388 + _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_start=2390 + _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_end=2511 + _globals['_AUDIOSTREAMINFO']._serialized_start=2513 + _globals['_AUDIOSTREAMINFO']._serialized_end=2576 + _globals['_OWNEDAUDIOSTREAM']._serialized_start=2578 + _globals['_OWNEDAUDIOSTREAM']._serialized_end=2689 + _globals['_AUDIOSTREAMEVENT']._serialized_start=2692 + _globals['_AUDIOSTREAMEVENT']._serialized_end=2851 + _globals['_AUDIOFRAMERECEIVED']._serialized_start=2853 + _globals['_AUDIOFRAMERECEIVED']._serialized_end=2926 + _globals['_AUDIOSTREAMEOS']._serialized_start=2928 + _globals['_AUDIOSTREAMEOS']._serialized_end=2944 + _globals['_AUDIOSOURCEOPTIONS']._serialized_start=2946 + _globals['_AUDIOSOURCEOPTIONS']._serialized_end=3047 + _globals['_AUDIOSOURCEINFO']._serialized_start=3049 + _globals['_AUDIOSOURCEINFO']._serialized_end=3112 + _globals['_OWNEDAUDIOSOURCE']._serialized_start=3114 + _globals['_OWNEDAUDIOSOURCE']._serialized_end=3225 + _globals['_AUDIORESAMPLERINFO']._serialized_start=3227 + _globals['_AUDIORESAMPLERINFO']._serialized_end=3247 + _globals['_OWNEDAUDIORESAMPLER']._serialized_start=3249 + _globals['_OWNEDAUDIORESAMPLER']._serialized_end=3366 + _globals['_SOXRESAMPLERINFO']._serialized_start=3368 + _globals['_SOXRESAMPLERINFO']._serialized_end=3386 + _globals['_OWNEDSOXRESAMPLER']._serialized_start=3388 + _globals['_OWNEDSOXRESAMPLER']._serialized_end=3501 + _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_start=3503 + _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=3554 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=3556 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=3634 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi index 797521d5..b8304d30 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi @@ -148,10 +148,14 @@ class NewAudioStreamRequest(google.protobuf.message.Message): TYPE_FIELD_NUMBER: builtins.int SAMPLE_RATE_FIELD_NUMBER: builtins.int NUM_CHANNELS_FIELD_NUMBER: builtins.int + AUDIO_FILTER_HANDLE_FIELD_NUMBER: builtins.int + AUDIO_FILTER_OPTIONS_FIELD_NUMBER: builtins.int track_handle: builtins.int type: global___AudioStreamType.ValueType sample_rate: builtins.int num_channels: builtins.int + audio_filter_handle: builtins.int + audio_filter_options: builtins.str def __init__( self, *, @@ -159,9 +163,11 @@ class NewAudioStreamRequest(google.protobuf.message.Message): type: global___AudioStreamType.ValueType | None = ..., sample_rate: builtins.int | None = ..., num_channels: builtins.int | None = ..., + audio_filter_handle: builtins.int | None = ..., + audio_filter_options: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["num_channels", b"num_channels", "sample_rate", b"sample_rate", "track_handle", b"track_handle", "type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["num_channels", b"num_channels", "sample_rate", b"sample_rate", "track_handle", b"track_handle", "type", b"type"]) -> None: ... + def HasField(self, field_name: typing.Literal["audio_filter_handle", b"audio_filter_handle", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "sample_rate", b"sample_rate", "track_handle", b"track_handle", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["audio_filter_handle", b"audio_filter_handle", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "sample_rate", b"sample_rate", "track_handle", b"track_handle", "type", b"type"]) -> None: ... global___NewAudioStreamRequest = NewAudioStreamRequest @@ -191,11 +197,15 @@ class AudioStreamFromParticipantRequest(google.protobuf.message.Message): TRACK_SOURCE_FIELD_NUMBER: builtins.int SAMPLE_RATE_FIELD_NUMBER: builtins.int NUM_CHANNELS_FIELD_NUMBER: builtins.int + AUDIO_FILTER_HANDLE_FIELD_NUMBER: builtins.int + AUDIO_FILTER_OPTIONS_FIELD_NUMBER: builtins.int participant_handle: builtins.int type: global___AudioStreamType.ValueType track_source: track_pb2.TrackSource.ValueType sample_rate: builtins.int num_channels: builtins.int + audio_filter_handle: builtins.int + audio_filter_options: builtins.str def __init__( self, *, @@ -204,9 +214,11 @@ class AudioStreamFromParticipantRequest(google.protobuf.message.Message): track_source: track_pb2.TrackSource.ValueType | None = ..., sample_rate: builtins.int | None = ..., num_channels: builtins.int | None = ..., + audio_filter_handle: builtins.int | None = ..., + audio_filter_options: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["num_channels", b"num_channels", "participant_handle", b"participant_handle", "sample_rate", b"sample_rate", "track_source", b"track_source", "type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["num_channels", b"num_channels", "participant_handle", b"participant_handle", "sample_rate", b"sample_rate", "track_source", b"track_source", "type", b"type"]) -> None: ... + def HasField(self, field_name: typing.Literal["audio_filter_handle", b"audio_filter_handle", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "participant_handle", b"participant_handle", "sample_rate", b"sample_rate", "track_source", b"track_source", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["audio_filter_handle", b"audio_filter_handle", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "participant_handle", b"participant_handle", "sample_rate", b"sample_rate", "track_source", b"track_source", "type", b"type"]) -> None: ... global___AudioStreamFromParticipantRequest = AudioStreamFromParticipantRequest @@ -851,3 +863,38 @@ class OwnedSoxResampler(google.protobuf.message.Message): def ClearField(self, field_name: typing.Literal["handle", b"handle", "info", b"info"]) -> None: ... global___OwnedSoxResampler = OwnedSoxResampler + +@typing.final +class LoadAudioFilterPluginRequest(google.protobuf.message.Message): + """Audio Filter Plugin""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PLUGIN_PATH_FIELD_NUMBER: builtins.int + plugin_path: builtins.str + def __init__( + self, + *, + plugin_path: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["plugin_path", b"plugin_path"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["plugin_path", b"plugin_path"]) -> None: ... + +global___LoadAudioFilterPluginRequest = LoadAudioFilterPluginRequest + +@typing.final +class LoadAudioFilterPluginResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + HANDLE_FIELD_NUMBER: builtins.int + @property + def handle(self) -> handle_pb2.FfiOwnedHandle: ... + def __init__( + self, + *, + handle: handle_pb2.FfiOwnedHandle | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["handle", b"handle"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["handle", b"handle"]) -> None: ... + +global___LoadAudioFilterPluginResponse = LoadAudioFilterPluginResponse diff --git a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py index 482deb8a..3d5d637a 100644 --- a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: e2ee.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'e2ee.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index 5cc9e307..1e31e3f2 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: ffi.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'ffi.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -21,7 +31,7 @@ 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\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') +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\"\x94\x1a\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\x12\x44\n\x12send_stream_header\x18, \x01(\x0b\x32&.livekit.proto.SendStreamHeaderRequestH\x00\x12\x42\n\x11send_stream_chunk\x18- \x01(\x0b\x32%.livekit.proto.SendStreamChunkRequestH\x00\x12\x46\n\x13send_stream_trailer\x18. \x01(\x0b\x32\'.livekit.proto.SendStreamTrailerRequestH\x00\x12x\n.set_data_channel_buffered_amount_low_threshold\x18/ \x01(\x0b\x32>.livekit.proto.SetDataChannelBufferedAmountLowThresholdRequestH\x00\x12O\n\x18load_audio_filter_plugin\x18\x30 \x01(\x0b\x32+.livekit.proto.LoadAudioFilterPluginRequestH\x00\x42\t\n\x07message\"\xff\x19\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\x12\x45\n\x12send_stream_header\x18+ \x01(\x0b\x32\'.livekit.proto.SendStreamHeaderResponseH\x00\x12\x43\n\x11send_stream_chunk\x18, \x01(\x0b\x32&.livekit.proto.SendStreamChunkResponseH\x00\x12G\n\x13send_stream_trailer\x18- \x01(\x0b\x32(.livekit.proto.SendStreamTrailerResponseH\x00\x12y\n.set_data_channel_buffered_amount_low_threshold\x18. \x01(\x0b\x32?.livekit.proto.SetDataChannelBufferedAmountLowThresholdResponseH\x00\x12P\n\x18load_audio_filter_plugin\x18/ \x01(\x0b\x32,.livekit.proto.LoadAudioFilterPluginResponseH\x00\x42\t\n\x07message\"\xdf\x0c\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\x12\x45\n\x12send_stream_header\x18\x19 \x01(\x0b\x32\'.livekit.proto.SendStreamHeaderCallbackH\x00\x12\x43\n\x11send_stream_chunk\x18\x1a \x01(\x0b\x32&.livekit.proto.SendStreamChunkCallbackH\x00\x12G\n\x13send_stream_trailer\x18\x1b \x01(\x0b\x32(.livekit.proto.SendStreamTrailerCallbackH\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) @@ -29,24 +39,24 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_LOGLEVEL']._serialized_start=7734 - _globals['_LOGLEVEL']._serialized_end=7817 + _globals['_LOGLEVEL']._serialized_start=8778 + _globals['_LOGLEVEL']._serialized_end=8861 _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 + _globals['_FFIREQUEST']._serialized_end=3488 + _globals['_FFIRESPONSE']._serialized_start=3491 + _globals['_FFIRESPONSE']._serialized_end=6818 + _globals['_FFIEVENT']._serialized_start=6821 + _globals['_FFIEVENT']._serialized_end=8452 + _globals['_DISPOSEREQUEST']._serialized_start=8454 + _globals['_DISPOSEREQUEST']._serialized_end=8485 + _globals['_DISPOSERESPONSE']._serialized_start=8487 + _globals['_DISPOSERESPONSE']._serialized_end=8522 + _globals['_DISPOSECALLBACK']._serialized_start=8524 + _globals['_DISPOSECALLBACK']._serialized_end=8559 + _globals['_LOGRECORD']._serialized_start=8562 + _globals['_LOGRECORD']._serialized_end=8695 + _globals['_LOGBATCH']._serialized_start=8697 + _globals['_LOGBATCH']._serialized_end=8750 + _globals['_PANIC']._serialized_start=8752 + _globals['_PANIC']._serialized_end=8776 # @@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 45c2e073..2bd301fc 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi @@ -136,6 +136,11 @@ class FfiRequest(google.protobuf.message.Message): 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 + SEND_STREAM_HEADER_FIELD_NUMBER: builtins.int + SEND_STREAM_CHUNK_FIELD_NUMBER: builtins.int + SEND_STREAM_TRAILER_FIELD_NUMBER: builtins.int + SET_DATA_CHANNEL_BUFFERED_AMOUNT_LOW_THRESHOLD_FIELD_NUMBER: builtins.int + LOAD_AUDIO_FILTER_PLUGIN_FIELD_NUMBER: builtins.int @property def dispose(self) -> global___DisposeRequest: ... @property @@ -232,6 +237,22 @@ class FfiRequest(google.protobuf.message.Message): @property def update_remote_track_publication_dimension(self) -> track_publication_pb2.UpdateRemoteTrackPublicationDimensionRequest: ... + @property + def send_stream_header(self) -> room_pb2.SendStreamHeaderRequest: + """Data Streams""" + + @property + def send_stream_chunk(self) -> room_pb2.SendStreamChunkRequest: ... + @property + def send_stream_trailer(self) -> room_pb2.SendStreamTrailerRequest: ... + @property + def set_data_channel_buffered_amount_low_threshold(self) -> room_pb2.SetDataChannelBufferedAmountLowThresholdRequest: + """Data Channel""" + + @property + def load_audio_filter_plugin(self) -> audio_frame_pb2.LoadAudioFilterPluginRequest: + """Audio Filter Plugin""" + def __init__( self, *, @@ -277,10 +298,15 @@ class FfiRequest(google.protobuf.message.Message): 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 = ..., + send_stream_header: room_pb2.SendStreamHeaderRequest | None = ..., + send_stream_chunk: room_pb2.SendStreamChunkRequest | None = ..., + send_stream_trailer: room_pb2.SendStreamTrailerRequest | None = ..., + set_data_channel_buffered_amount_low_threshold: room_pb2.SetDataChannelBufferedAmountLowThresholdRequest | None = ..., + load_audio_filter_plugin: audio_frame_pb2.LoadAudioFilterPluginRequest | 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", "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: ... + 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", "load_audio_filter_plugin", b"load_audio_filter_plugin", "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", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "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", "load_audio_filter_plugin", b"load_audio_filter_plugin", "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", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "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", "send_stream_header", "send_stream_chunk", "send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", "load_audio_filter_plugin"] | None: ... global___FfiRequest = FfiRequest @@ -331,6 +357,11 @@ class FfiResponse(google.protobuf.message.Message): 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 + SEND_STREAM_HEADER_FIELD_NUMBER: builtins.int + SEND_STREAM_CHUNK_FIELD_NUMBER: builtins.int + SEND_STREAM_TRAILER_FIELD_NUMBER: builtins.int + SET_DATA_CHANNEL_BUFFERED_AMOUNT_LOW_THRESHOLD_FIELD_NUMBER: builtins.int + LOAD_AUDIO_FILTER_PLUGIN_FIELD_NUMBER: builtins.int @property def dispose(self) -> global___DisposeResponse: ... @property @@ -425,6 +456,22 @@ class FfiResponse(google.protobuf.message.Message): @property def update_remote_track_publication_dimension(self) -> track_publication_pb2.UpdateRemoteTrackPublicationDimensionResponse: ... + @property + def send_stream_header(self) -> room_pb2.SendStreamHeaderResponse: + """Data Streams""" + + @property + def send_stream_chunk(self) -> room_pb2.SendStreamChunkResponse: ... + @property + def send_stream_trailer(self) -> room_pb2.SendStreamTrailerResponse: ... + @property + def set_data_channel_buffered_amount_low_threshold(self) -> room_pb2.SetDataChannelBufferedAmountLowThresholdResponse: + """Data Channel""" + + @property + def load_audio_filter_plugin(self) -> audio_frame_pb2.LoadAudioFilterPluginResponse: + """Audio Filter Plugin""" + def __init__( self, *, @@ -469,10 +516,15 @@ class FfiResponse(google.protobuf.message.Message): 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 = ..., + send_stream_header: room_pb2.SendStreamHeaderResponse | None = ..., + send_stream_chunk: room_pb2.SendStreamChunkResponse | None = ..., + send_stream_trailer: room_pb2.SendStreamTrailerResponse | None = ..., + set_data_channel_buffered_amount_low_threshold: room_pb2.SetDataChannelBufferedAmountLowThresholdResponse | None = ..., + load_audio_filter_plugin: audio_frame_pb2.LoadAudioFilterPluginResponse | 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", "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: ... + 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", "load_audio_filter_plugin", b"load_audio_filter_plugin", "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", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "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", "load_audio_filter_plugin", b"load_audio_filter_plugin", "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", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "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", "send_stream_header", "send_stream_chunk", "send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", "load_audio_filter_plugin"] | None: ... global___FfiResponse = FfiResponse @@ -508,6 +560,9 @@ class FfiEvent(google.protobuf.message.Message): CHAT_MESSAGE_FIELD_NUMBER: builtins.int PERFORM_RPC_FIELD_NUMBER: builtins.int RPC_METHOD_INVOCATION_FIELD_NUMBER: builtins.int + SEND_STREAM_HEADER_FIELD_NUMBER: builtins.int + SEND_STREAM_CHUNK_FIELD_NUMBER: builtins.int + SEND_STREAM_TRAILER_FIELD_NUMBER: builtins.int @property def room_event(self) -> room_pb2.RoomEvent: ... @property @@ -554,6 +609,12 @@ class FfiEvent(google.protobuf.message.Message): def perform_rpc(self) -> rpc_pb2.PerformRpcCallback: ... @property def rpc_method_invocation(self) -> rpc_pb2.RpcMethodInvocationEvent: ... + @property + def send_stream_header(self) -> room_pb2.SendStreamHeaderCallback: ... + @property + def send_stream_chunk(self) -> room_pb2.SendStreamChunkCallback: ... + @property + def send_stream_trailer(self) -> room_pb2.SendStreamTrailerCallback: ... def __init__( self, *, @@ -580,10 +641,13 @@ class FfiEvent(google.protobuf.message.Message): chat_message: room_pb2.SendChatMessageCallback | None = ..., perform_rpc: rpc_pb2.PerformRpcCallback | None = ..., rpc_method_invocation: rpc_pb2.RpcMethodInvocationEvent | None = ..., + send_stream_header: room_pb2.SendStreamHeaderCallback | None = ..., + send_stream_chunk: room_pb2.SendStreamChunkCallback | None = ..., + send_stream_trailer: room_pb2.SendStreamTrailerCallback | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "chat_message", b"chat_message", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "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", "room_event", b"room_event", "rpc_method_invocation", b"rpc_method_invocation", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "chat_message", b"chat_message", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "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", "room_event", b"room_event", "rpc_method_invocation", b"rpc_method_invocation", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.Literal["room_event", "track_event", "video_stream_event", "audio_stream_event", "connect", "disconnect", "dispose", "publish_track", "unpublish_track", "publish_data", "publish_transcription", "capture_audio_frame", "set_local_metadata", "set_local_name", "set_local_attributes", "get_stats", "logs", "get_session_stats", "panic", "publish_sip_dtmf", "chat_message", "perform_rpc", "rpc_method_invocation"] | None: ... + def HasField(self, field_name: typing.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "chat_message", b"chat_message", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "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", "room_event", b"room_event", "rpc_method_invocation", b"rpc_method_invocation", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "chat_message", b"chat_message", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "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", "room_event", b"room_event", "rpc_method_invocation", b"rpc_method_invocation", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.Literal["room_event", "track_event", "video_stream_event", "audio_stream_event", "connect", "disconnect", "dispose", "publish_track", "unpublish_track", "publish_data", "publish_transcription", "capture_audio_frame", "set_local_metadata", "set_local_name", "set_local_attributes", "get_stats", "logs", "get_session_stats", "panic", "publish_sip_dtmf", "chat_message", "perform_rpc", "rpc_method_invocation", "send_stream_header", "send_stream_chunk", "send_stream_trailer"] | None: ... global___FfiEvent = FfiEvent diff --git a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py index 98d253b4..2c19a638 100644 --- a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: handle.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'handle.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py index b4425bd1..88eff7e4 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: participant.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'participant.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index b1462331..cd6cf979 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: room.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'room.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -20,7 +30,7 @@ from . import stats_pb2 as stats__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \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') +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\"\xa9\x11\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\x12I\n\x16stream_header_received\x18\x1e \x01(\x0b\x32\'.livekit.proto.DataStreamHeaderReceivedH\x00\x12G\n\x15stream_chunk_received\x18\x1f \x01(\x0b\x32&.livekit.proto.DataStreamChunkReceivedH\x00\x12K\n\x17stream_trailer_received\x18 \x01(\x0b\x32(.livekit.proto.DataStreamTrailerReceivedH\x00\x12i\n\"data_channel_low_threshold_changed\x18! \x01(\x0b\x32;.livekit.proto.DataChannelBufferedAmountLowThresholdChangedH\x00\x42\t\n\x07message\"\x9a\x01\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\x12.\n&lossy_dc_buffered_amount_low_threshold\x18\x04 \x02(\x04\x12\x31\n)reliable_dc_buffered_amount_low_threshold\x18\x05 \x02(\x04\"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\"\x8e\x07\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 \x01(\x05\x12\x1a\n\x12reply_to_stream_id\x18\x03 \x01(\t\x12\x1b\n\x13\x61ttached_stream_ids\x18\x04 \x03(\t\x12\x11\n\tgenerated\x18\x05 \x01(\x08\x1a\x1a\n\nByteHeader\x12\x0c\n\x04name\x18\x01 \x02(\t\x1a\xeb\x02\n\x06Header\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\x11\n\tmime_type\x18\x03 \x02(\t\x12\r\n\x05topic\x18\x04 \x02(\t\x12\x14\n\x0ctotal_length\x18\x05 \x01(\x04\x12\x44\n\nattributes\x18\x06 \x03(\x0b\x32\x30.livekit.proto.DataStream.Header.AttributesEntry\x12;\n\x0btext_header\x18\x07 \x01(\x0b\x32$.livekit.proto.DataStream.TextHeaderH\x00\x12;\n\x0b\x62yte_header\x18\x08 \x01(\x0b\x32$.livekit.proto.DataStream.ByteHeaderH\x00\x1a\x31\n\x0f\x41ttributesEntry\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\x1a]\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\x0f\n\x07version\x18\x04 \x01(\x05\x12\n\n\x02iv\x18\x05 \x01(\x0c\x1a\xa6\x01\n\x07Trailer\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x0e\n\x06reason\x18\x02 \x02(\t\x12\x45\n\nattributes\x18\x03 \x03(\x0b\x32\x31.livekit.proto.DataStream.Trailer.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"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\"j\n\x18\x44\x61taStreamHeaderReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\"g\n\x17\x44\x61taStreamChunkReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\"m\n\x19\x44\x61taStreamTrailerReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\"\xa6\x01\n\x17SendStreamHeaderRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa3\x01\n\x16SendStreamChunkRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa9\x01\n\x18SendStreamTrailerRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\",\n\x18SendStreamHeaderResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"+\n\x17SendStreamChunkResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"-\n\x19SendStreamTrailerResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SendStreamHeaderCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\":\n\x17SendStreamChunkCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"<\n\x19SendStreamTrailerCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x93\x01\n/SetDataChannelBufferedAmountLowThresholdRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\tthreshold\x18\x02 \x02(\x04\x12+\n\x04kind\x18\x03 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\"2\n0SetDataChannelBufferedAmountLowThresholdResponse\"n\n,DataChannelBufferedAmountLowThresholdChanged\x12+\n\x04kind\x18\x01 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x11\n\tthreshold\x18\x02 \x02(\x04*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) @@ -30,18 +40,20 @@ _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._loaded_options = None _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._serialized_options = b'\030\001' - _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['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._loaded_options = None + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._loaded_options = None + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_ICETRANSPORTTYPE']._serialized_start=11988 + _globals['_ICETRANSPORTTYPE']._serialized_end=12068 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=12070 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=12137 + _globals['_CONNECTIONQUALITY']._serialized_start=12139 + _globals['_CONNECTIONQUALITY']._serialized_end=12235 + _globals['_CONNECTIONSTATE']._serialized_start=12237 + _globals['_CONNECTIONSTATE']._serialized_end=12320 + _globals['_DATAPACKETKIND']._serialized_start=12322 + _globals['_DATAPACKETKIND']._serialized_end=12373 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -147,87 +159,121 @@ _globals['_OWNEDBUFFER']._serialized_start=4699 _globals['_OWNEDBUFFER']._serialized_end=4800 _globals['_ROOMEVENT']._serialized_start=4803 - _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 + _globals['_ROOMEVENT']._serialized_end=7020 + _globals['_ROOMINFO']._serialized_start=7023 + _globals['_ROOMINFO']._serialized_end=7177 + _globals['_OWNEDROOM']._serialized_start=7179 + _globals['_OWNEDROOM']._serialized_end=7276 + _globals['_PARTICIPANTCONNECTED']._serialized_start=7278 + _globals['_PARTICIPANTCONNECTED']._serialized_end=7347 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=7349 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=7404 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=7406 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=7446 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=7448 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=7496 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=7498 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=7539 + _globals['_TRACKPUBLISHED']._serialized_start=7541 + _globals['_TRACKPUBLISHED']._serialized_end=7646 + _globals['_TRACKUNPUBLISHED']._serialized_start=7648 + _globals['_TRACKUNPUBLISHED']._serialized_end=7721 + _globals['_TRACKSUBSCRIBED']._serialized_start=7723 + _globals['_TRACKSUBSCRIBED']._serialized_end=7812 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=7814 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=7882 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=7884 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=7973 + _globals['_TRACKMUTED']._serialized_start=7975 + _globals['_TRACKMUTED']._serialized_end=8036 + _globals['_TRACKUNMUTED']._serialized_start=8038 + _globals['_TRACKUNMUTED']._serialized_end=8101 + _globals['_E2EESTATECHANGED']._serialized_start=8103 + _globals['_E2EESTATECHANGED']._serialized_end=8198 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=8200 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=8255 + _globals['_ROOMMETADATACHANGED']._serialized_start=8257 + _globals['_ROOMMETADATACHANGED']._serialized_end=8296 + _globals['_ROOMSIDCHANGED']._serialized_start=8298 + _globals['_ROOMSIDCHANGED']._serialized_end=8327 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=8329 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=8405 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=8408 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=8580 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=8582 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=8650 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=8652 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=8759 + _globals['_USERPACKET']._serialized_start=8761 + _globals['_USERPACKET']._serialized_end=8830 + _globals['_CHATMESSAGE']._serialized_start=8832 + _globals['_CHATMESSAGE']._serialized_end=8953 + _globals['_CHATMESSAGERECEIVED']._serialized_start=8955 + _globals['_CHATMESSAGERECEIVED']._serialized_end=9051 + _globals['_SIPDTMF']._serialized_start=9053 + _globals['_SIPDTMF']._serialized_end=9091 + _globals['_DATAPACKETRECEIVED']._serialized_start=9094 + _globals['_DATAPACKETRECEIVED']._serialized_end=9285 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=9287 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=9414 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=9416 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=9487 + _globals['_CONNECTED']._serialized_start=9489 + _globals['_CONNECTED']._serialized_end=9500 + _globals['_DISCONNECTED']._serialized_start=9502 + _globals['_DISCONNECTED']._serialized_end=9565 + _globals['_RECONNECTING']._serialized_start=9567 + _globals['_RECONNECTING']._serialized_end=9581 + _globals['_RECONNECTED']._serialized_start=9583 + _globals['_RECONNECTED']._serialized_end=9596 + _globals['_ROOMEOS']._serialized_start=9598 + _globals['_ROOMEOS']._serialized_end=9607 + _globals['_DATASTREAM']._serialized_start=9610 + _globals['_DATASTREAM']._serialized_end=10520 + _globals['_DATASTREAM_TEXTHEADER']._serialized_start=9625 + _globals['_DATASTREAM_TEXTHEADER']._serialized_end=9795 + _globals['_DATASTREAM_BYTEHEADER']._serialized_start=9797 + _globals['_DATASTREAM_BYTEHEADER']._serialized_end=9823 + _globals['_DATASTREAM_HEADER']._serialized_start=9826 + _globals['_DATASTREAM_HEADER']._serialized_end=10189 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_start=10122 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_end=10171 + _globals['_DATASTREAM_CHUNK']._serialized_start=10191 + _globals['_DATASTREAM_CHUNK']._serialized_end=10284 + _globals['_DATASTREAM_TRAILER']._serialized_start=10287 + _globals['_DATASTREAM_TRAILER']._serialized_end=10453 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_start=10122 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_end=10171 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=10455 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=10520 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_start=10522 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_end=10628 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_start=10630 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_end=10733 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_start=10735 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_end=10844 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_start=10847 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_end=11013 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_start=11016 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_end=11179 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_start=11182 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_end=11351 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_start=11353 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_end=11397 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_start=11399 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_end=11442 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_start=11444 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_end=11489 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_start=11491 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_end=11550 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_start=11552 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_end=11610 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_start=11612 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_end=11672 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_start=11675 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_end=11822 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_start=11824 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_end=11874 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_start=11876 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_end=11986 # @@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 f78a2403..9607bfb0 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -1264,8 +1264,10 @@ 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 + STREAM_HEADER_RECEIVED_FIELD_NUMBER: builtins.int + STREAM_CHUNK_RECEIVED_FIELD_NUMBER: builtins.int + STREAM_TRAILER_RECEIVED_FIELD_NUMBER: builtins.int + DATA_CHANNEL_LOW_THRESHOLD_CHANGED_FIELD_NUMBER: builtins.int room_handle: builtins.int @property def participant_connected(self) -> global___ParticipantConnected: ... @@ -1328,9 +1330,13 @@ class RoomEvent(google.protobuf.message.Message): @property def chat_message(self) -> global___ChatMessageReceived: ... @property - def stream_header(self) -> global___DataStream.Header: ... + def stream_header_received(self) -> global___DataStreamHeaderReceived: ... @property - def stream_chunk(self) -> global___DataStream.Chunk: ... + def stream_chunk_received(self) -> global___DataStreamChunkReceived: ... + @property + def stream_trailer_received(self) -> global___DataStreamTrailerReceived: ... + @property + def data_channel_low_threshold_changed(self) -> global___DataChannelBufferedAmountLowThresholdChanged: ... def __init__( self, *, @@ -1363,12 +1369,14 @@ 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 = ..., + stream_header_received: global___DataStreamHeaderReceived | None = ..., + stream_chunk_received: global___DataStreamChunkReceived | None = ..., + stream_trailer_received: global___DataStreamTrailerReceived | None = ..., + data_channel_low_threshold_changed: global___DataChannelBufferedAmountLowThresholdChanged | 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", "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: ... + 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_channel_low_threshold_changed", b"data_channel_low_threshold_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_received", b"stream_chunk_received", "stream_header_received", b"stream_header_received", "stream_trailer_received", b"stream_trailer_received", "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_channel_low_threshold_changed", b"data_channel_low_threshold_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_received", b"stream_chunk_received", "stream_header_received", b"stream_header_received", "stream_trailer_received", b"stream_trailer_received", "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_received", "stream_chunk_received", "stream_trailer_received", "data_channel_low_threshold_changed"] | None: ... global___RoomEvent = RoomEvent @@ -1379,18 +1387,24 @@ class RoomInfo(google.protobuf.message.Message): SID_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int + LOSSY_DC_BUFFERED_AMOUNT_LOW_THRESHOLD_FIELD_NUMBER: builtins.int + RELIABLE_DC_BUFFERED_AMOUNT_LOW_THRESHOLD_FIELD_NUMBER: builtins.int sid: builtins.str name: builtins.str metadata: builtins.str + lossy_dc_buffered_amount_low_threshold: builtins.int + reliable_dc_buffered_amount_low_threshold: builtins.int def __init__( self, *, sid: builtins.str | None = ..., name: builtins.str | None = ..., metadata: builtins.str | None = ..., + lossy_dc_buffered_amount_low_threshold: builtins.int | None = ..., + reliable_dc_buffered_amount_low_threshold: builtins.int | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["metadata", b"metadata", "name", b"name", "sid", b"sid"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["metadata", b"metadata", "name", b"name", "sid", b"sid"]) -> None: ... + def HasField(self, field_name: typing.Literal["lossy_dc_buffered_amount_low_threshold", b"lossy_dc_buffered_amount_low_threshold", "metadata", b"metadata", "name", b"name", "reliable_dc_buffered_amount_low_threshold", b"reliable_dc_buffered_amount_low_threshold", "sid", b"sid"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["lossy_dc_buffered_amount_low_threshold", b"lossy_dc_buffered_amount_low_threshold", "metadata", b"metadata", "name", b"name", "reliable_dc_buffered_amount_low_threshold", b"reliable_dc_buffered_amount_low_threshold", "sid", b"sid"]) -> None: ... global___RoomInfo = RoomInfo @@ -2063,21 +2077,20 @@ class DataStream(google.protobuf.message.Message): 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""" + class ByteHeader(google.protobuf.message.Message): + """header properties specific to byte or file streams""" DESCRIPTOR: google.protobuf.descriptor.Descriptor - FILE_NAME_FIELD_NUMBER: builtins.int - file_name: builtins.str - """name of the file""" + NAME_FIELD_NUMBER: builtins.int + name: builtins.str def __init__( self, *, - file_name: builtins.str | None = ..., + 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: ... + def HasField(self, field_name: typing.Literal["name", b"name"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["name", b"name"]) -> None: ... @typing.final class Header(google.protobuf.message.Message): @@ -2086,7 +2099,7 @@ class DataStream(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final - class ExtensionsEntry(google.protobuf.message.Message): + class AttributesEntry(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor KEY_FIELD_NUMBER: builtins.int @@ -2104,47 +2117,43 @@ class DataStream(google.protobuf.message.Message): STREAM_ID_FIELD_NUMBER: builtins.int TIMESTAMP_FIELD_NUMBER: builtins.int - TOPIC_FIELD_NUMBER: builtins.int MIME_TYPE_FIELD_NUMBER: builtins.int + TOPIC_FIELD_NUMBER: builtins.int TOTAL_LENGTH_FIELD_NUMBER: builtins.int - TOTAL_CHUNKS_FIELD_NUMBER: builtins.int - EXTENSIONS_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int TEXT_HEADER_FIELD_NUMBER: builtins.int - FILE_HEADER_FIELD_NUMBER: builtins.int + BYTE_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 + topic: 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""" + def attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """user defined attributes map that can carry additional info""" @property def text_header(self) -> global___DataStream.TextHeader: ... @property - def file_header(self) -> global___DataStream.FileHeader: ... + def byte_header(self) -> global___DataStream.ByteHeader: ... def __init__( self, *, stream_id: builtins.str | None = ..., timestamp: builtins.int | None = ..., - topic: builtins.str | None = ..., mime_type: builtins.str | None = ..., + topic: builtins.str | None = ..., total_length: builtins.int | None = ..., - total_chunks: builtins.int | None = ..., - extensions: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., text_header: global___DataStream.TextHeader | None = ..., - file_header: global___DataStream.FileHeader | None = ..., + byte_header: global___DataStream.ByteHeader | 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: ... + def HasField(self, field_name: typing.Literal["byte_header", b"byte_header", "content_header", b"content_header", "mime_type", b"mime_type", "stream_id", b"stream_id", "text_header", b"text_header", "timestamp", b"timestamp", "topic", b"topic", "total_length", b"total_length"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "byte_header", b"byte_header", "content_header", b"content_header", "mime_type", b"mime_type", "stream_id", b"stream_id", "text_header", b"text_header", "timestamp", b"timestamp", "topic", b"topic", "total_length", b"total_length"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["content_header", b"content_header"]) -> typing.Literal["text_header", "byte_header"] | None: ... @typing.final class Chunk(google.protobuf.message.Message): @@ -2153,7 +2162,6 @@ class DataStream(google.protobuf.message.Message): 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 @@ -2161,8 +2169,6 @@ class DataStream(google.protobuf.message.Message): 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 @@ -2173,15 +2179,353 @@ class DataStream(google.protobuf.message.Message): 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 HasField(self, field_name: typing.Literal["chunk_index", b"chunk_index", "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", "content", b"content", "iv", b"iv", "stream_id", b"stream_id", "version", b"version"]) -> None: ... + + @typing.final + class Trailer(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class AttributesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str | 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 + REASON_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int + stream_id: builtins.str + """unique identifier for this data stream""" + reason: builtins.str + """reason why the stream was closed (could contain "error" / "interrupted" / empty for expected end)""" + @property + def attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """finalizing updates for the stream, can also include additional insights for errors or endTime for transcription""" + + def __init__( + self, + *, + stream_id: builtins.str | None = ..., + reason: builtins.str | None = ..., + attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["reason", b"reason", "stream_id", b"stream_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "reason", b"reason", "stream_id", b"stream_id"]) -> None: ... def __init__( self, ) -> None: ... global___DataStream = DataStream + +@typing.final +class DataStreamHeaderReceived(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int + HEADER_FIELD_NUMBER: builtins.int + participant_identity: builtins.str + @property + def header(self) -> global___DataStream.Header: ... + def __init__( + self, + *, + participant_identity: builtins.str | None = ..., + header: global___DataStream.Header | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["header", b"header", "participant_identity", b"participant_identity"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["header", b"header", "participant_identity", b"participant_identity"]) -> None: ... + +global___DataStreamHeaderReceived = DataStreamHeaderReceived + +@typing.final +class DataStreamChunkReceived(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int + CHUNK_FIELD_NUMBER: builtins.int + participant_identity: builtins.str + @property + def chunk(self) -> global___DataStream.Chunk: ... + def __init__( + self, + *, + participant_identity: builtins.str | None = ..., + chunk: global___DataStream.Chunk | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["chunk", b"chunk", "participant_identity", b"participant_identity"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["chunk", b"chunk", "participant_identity", b"participant_identity"]) -> None: ... + +global___DataStreamChunkReceived = DataStreamChunkReceived + +@typing.final +class DataStreamTrailerReceived(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int + TRAILER_FIELD_NUMBER: builtins.int + participant_identity: builtins.str + @property + def trailer(self) -> global___DataStream.Trailer: ... + def __init__( + self, + *, + participant_identity: builtins.str | None = ..., + trailer: global___DataStream.Trailer | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["participant_identity", b"participant_identity", "trailer", b"trailer"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["participant_identity", b"participant_identity", "trailer", b"trailer"]) -> None: ... + +global___DataStreamTrailerReceived = DataStreamTrailerReceived + +@typing.final +class SendStreamHeaderRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOCAL_PARTICIPANT_HANDLE_FIELD_NUMBER: builtins.int + HEADER_FIELD_NUMBER: builtins.int + DESTINATION_IDENTITIES_FIELD_NUMBER: builtins.int + SENDER_IDENTITY_FIELD_NUMBER: builtins.int + local_participant_handle: builtins.int + sender_identity: builtins.str + @property + def header(self) -> global___DataStream.Header: ... + @property + def destination_identities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + local_participant_handle: builtins.int | None = ..., + header: global___DataStream.Header | None = ..., + destination_identities: collections.abc.Iterable[builtins.str] | None = ..., + sender_identity: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["header", b"header", "local_participant_handle", b"local_participant_handle", "sender_identity", b"sender_identity"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["destination_identities", b"destination_identities", "header", b"header", "local_participant_handle", b"local_participant_handle", "sender_identity", b"sender_identity"]) -> None: ... + +global___SendStreamHeaderRequest = SendStreamHeaderRequest + +@typing.final +class SendStreamChunkRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOCAL_PARTICIPANT_HANDLE_FIELD_NUMBER: builtins.int + CHUNK_FIELD_NUMBER: builtins.int + DESTINATION_IDENTITIES_FIELD_NUMBER: builtins.int + SENDER_IDENTITY_FIELD_NUMBER: builtins.int + local_participant_handle: builtins.int + sender_identity: builtins.str + @property + def chunk(self) -> global___DataStream.Chunk: ... + @property + def destination_identities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + local_participant_handle: builtins.int | None = ..., + chunk: global___DataStream.Chunk | None = ..., + destination_identities: collections.abc.Iterable[builtins.str] | None = ..., + sender_identity: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["chunk", b"chunk", "local_participant_handle", b"local_participant_handle", "sender_identity", b"sender_identity"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["chunk", b"chunk", "destination_identities", b"destination_identities", "local_participant_handle", b"local_participant_handle", "sender_identity", b"sender_identity"]) -> None: ... + +global___SendStreamChunkRequest = SendStreamChunkRequest + +@typing.final +class SendStreamTrailerRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOCAL_PARTICIPANT_HANDLE_FIELD_NUMBER: builtins.int + TRAILER_FIELD_NUMBER: builtins.int + DESTINATION_IDENTITIES_FIELD_NUMBER: builtins.int + SENDER_IDENTITY_FIELD_NUMBER: builtins.int + local_participant_handle: builtins.int + sender_identity: builtins.str + @property + def trailer(self) -> global___DataStream.Trailer: ... + @property + def destination_identities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + local_participant_handle: builtins.int | None = ..., + trailer: global___DataStream.Trailer | None = ..., + destination_identities: collections.abc.Iterable[builtins.str] | None = ..., + sender_identity: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["local_participant_handle", b"local_participant_handle", "sender_identity", b"sender_identity", "trailer", b"trailer"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["destination_identities", b"destination_identities", "local_participant_handle", b"local_participant_handle", "sender_identity", b"sender_identity", "trailer", b"trailer"]) -> None: ... + +global___SendStreamTrailerRequest = SendStreamTrailerRequest + +@typing.final +class SendStreamHeaderResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + async_id: builtins.int + def __init__( + self, + *, + async_id: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["async_id", b"async_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["async_id", b"async_id"]) -> None: ... + +global___SendStreamHeaderResponse = SendStreamHeaderResponse + +@typing.final +class SendStreamChunkResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + async_id: builtins.int + def __init__( + self, + *, + async_id: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["async_id", b"async_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["async_id", b"async_id"]) -> None: ... + +global___SendStreamChunkResponse = SendStreamChunkResponse + +@typing.final +class SendStreamTrailerResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + async_id: builtins.int + def __init__( + self, + *, + async_id: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["async_id", b"async_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["async_id", b"async_id"]) -> None: ... + +global___SendStreamTrailerResponse = SendStreamTrailerResponse + +@typing.final +class SendStreamHeaderCallback(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + async_id: builtins.int + error: builtins.str + def __init__( + self, + *, + async_id: builtins.int | None = ..., + error: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["async_id", b"async_id", "error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["async_id", b"async_id", "error", b"error"]) -> None: ... + +global___SendStreamHeaderCallback = SendStreamHeaderCallback + +@typing.final +class SendStreamChunkCallback(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + async_id: builtins.int + error: builtins.str + def __init__( + self, + *, + async_id: builtins.int | None = ..., + error: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["async_id", b"async_id", "error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["async_id", b"async_id", "error", b"error"]) -> None: ... + +global___SendStreamChunkCallback = SendStreamChunkCallback + +@typing.final +class SendStreamTrailerCallback(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + async_id: builtins.int + error: builtins.str + def __init__( + self, + *, + async_id: builtins.int | None = ..., + error: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["async_id", b"async_id", "error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["async_id", b"async_id", "error", b"error"]) -> None: ... + +global___SendStreamTrailerCallback = SendStreamTrailerCallback + +@typing.final +class SetDataChannelBufferedAmountLowThresholdRequest(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOCAL_PARTICIPANT_HANDLE_FIELD_NUMBER: builtins.int + THRESHOLD_FIELD_NUMBER: builtins.int + KIND_FIELD_NUMBER: builtins.int + local_participant_handle: builtins.int + threshold: builtins.int + kind: global___DataPacketKind.ValueType + def __init__( + self, + *, + local_participant_handle: builtins.int | None = ..., + threshold: builtins.int | None = ..., + kind: global___DataPacketKind.ValueType | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["kind", b"kind", "local_participant_handle", b"local_participant_handle", "threshold", b"threshold"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["kind", b"kind", "local_participant_handle", b"local_participant_handle", "threshold", b"threshold"]) -> None: ... + +global___SetDataChannelBufferedAmountLowThresholdRequest = SetDataChannelBufferedAmountLowThresholdRequest + +@typing.final +class SetDataChannelBufferedAmountLowThresholdResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___SetDataChannelBufferedAmountLowThresholdResponse = SetDataChannelBufferedAmountLowThresholdResponse + +@typing.final +class DataChannelBufferedAmountLowThresholdChanged(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KIND_FIELD_NUMBER: builtins.int + THRESHOLD_FIELD_NUMBER: builtins.int + kind: global___DataPacketKind.ValueType + threshold: builtins.int + def __init__( + self, + *, + kind: global___DataPacketKind.ValueType | None = ..., + threshold: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["kind", b"kind", "threshold", b"threshold"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["kind", b"kind", "threshold", b"threshold"]) -> None: ... + +global___DataChannelBufferedAmountLowThresholdChanged = DataChannelBufferedAmountLowThresholdChanged diff --git a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py index 1b6302cd..8742ff25 100644 --- a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: rpc.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'rpc.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py index 2cbdb1cd..5d980d06 100644 --- a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: stats.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'stats.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_pb2.py index fcf32b38..2561f7dd 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: track.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'track.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py index 22a19081..b58568d5 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: track_publication.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'track_publication.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py index ba410f44..623d0d7b 100644 --- a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: video_frame.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'video_frame.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.pyi index 313cb77d..08ee8597 100644 --- a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.pyi @@ -90,7 +90,10 @@ class _VideoBufferTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper I010: _VideoBufferType.ValueType # 9 NV12: _VideoBufferType.ValueType # 10 -class VideoBufferType(_VideoBufferType, metaclass=_VideoBufferTypeEnumTypeWrapper): ... +class VideoBufferType(_VideoBufferType, metaclass=_VideoBufferTypeEnumTypeWrapper): + """Values of this enum must not be changed + It is used to serialize a rtc.VideoFrame on Python + """ RGBA: VideoBufferType.ValueType # 0 ABGR: VideoBufferType.ValueType # 1 diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index fb378cf0..c8dcad71 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -14,7 +14,7 @@ from __future__ import annotations -import asyncio +import asyncio, json from dataclasses import dataclass from typing import Any, AsyncIterator, Optional @@ -54,6 +54,8 @@ def __init__( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, + audio_filter_handle: int | None = None, + audio_filter_options: dict[str, Any] | None = None, **kwargs, ) -> None: """Initialize an `AudioStream` instance. @@ -85,6 +87,8 @@ def __init__( self._track: Track | None = track self._sample_rate = sample_rate self._num_channels = num_channels + self._audio_filter_handle = audio_filter_handle + self._audio_filter_options = audio_filter_options self._loop = loop or asyncio.get_event_loop() self._ffi_queue = FfiClient.instance.queue.subscribe(self._loop) self._queue: RingQueue[AudioFrameEvent | None] = RingQueue(capacity) @@ -112,6 +116,8 @@ def from_participant( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, + audio_filter_handle: int | None = None, + audio_filter_options: dict[str, Any] | None = None, ) -> AudioStream: """Create an `AudioStream` from a participant's audio track. @@ -144,6 +150,8 @@ def from_participant( track=None, # type: ignore sample_rate=sample_rate, num_channels=num_channels, + audio_filter_handle=audio_filter_handle, + audio_filter_options=audio_filter_options, ) @classmethod @@ -155,6 +163,8 @@ def from_track( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, + audio_filter_handle: int | None = None, + audio_filter_options: dict[str, Any] | None = None, ) -> AudioStream: """Create an `AudioStream` from an existing audio track. @@ -183,6 +193,8 @@ def from_track( capacity=capacity, sample_rate=sample_rate, num_channels=num_channels, + audio_filter_handle=audio_filter_handle, + audio_filter_options=audio_filter_options, ) def __del__(self) -> None: @@ -196,6 +208,10 @@ def _create_owned_stream(self) -> Any: new_audio_stream.sample_rate = self._sample_rate new_audio_stream.num_channels = self._num_channels new_audio_stream.type = proto_audio_frame.AudioStreamType.AUDIO_STREAM_NATIVE + if self._audio_filter_handle is not None: + new_audio_stream.audio_filter_handle = self._audio_filter_handle + if self._audio_filter_options is not None: + new_audio_stream.audio_filter_options = json.dumps(self._audio_filter_options) resp = FfiClient.instance.request(req) return resp.new_audio_stream.stream diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index c6132e86..aa3be1b3 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit c6132e864d33bd1def502693aa758eb157bdd7fc +Subproject commit aa3be1b3f1bdd3c1cb0fed686ebeeb30c51c2e64 From 0674b86870cff081bdf3c755b9e48c6c1ceca863 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 27 Jan 2025 11:50:44 -0800 Subject: [PATCH 02/36] add audio_filter ffi --- livekit-rtc/livekit/rtc/audio_filter.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 livekit-rtc/livekit/rtc/audio_filter.py diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py new file mode 100644 index 00000000..22ccea02 --- /dev/null +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -0,0 +1,20 @@ +from ._ffi_client import FfiClient, FfiHandle +from ._proto import ffi_pb2 as proto_ffi + +class AudioFilter: + def __init__( + self, + path: str, + ) -> None: + self._path = path + + req = proto_ffi.FfiRequest() + req.load_audio_filter_plugin.plugin_path = path + + resp = FfiClient.instance.request(req) + + self._ffi_handle_id = resp.load_audio_filter_plugin.handle.id + self._ffi_handle = FfiHandle(resp.load_audio_filter_plugin.handle.id) + + def handle(self) -> int: + return self._ffi_handle_id From cb0a3484ff2d64ae28f166e760d296357f109b07 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 27 Jan 2025 11:53:01 -0800 Subject: [PATCH 03/36] ruff --- livekit-rtc/livekit/rtc/audio_filter.py | 1 + livekit-rtc/livekit/rtc/audio_stream.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index 22ccea02..11ab0b93 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -1,6 +1,7 @@ from ._ffi_client import FfiClient, FfiHandle from ._proto import ffi_pb2 as proto_ffi + class AudioFilter: def __init__( self, diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index c8dcad71..a89d86e7 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -211,7 +211,9 @@ def _create_owned_stream(self) -> Any: if self._audio_filter_handle is not None: new_audio_stream.audio_filter_handle = self._audio_filter_handle if self._audio_filter_options is not None: - new_audio_stream.audio_filter_options = json.dumps(self._audio_filter_options) + new_audio_stream.audio_filter_options = json.dumps( + self._audio_filter_options + ) resp = FfiClient.instance.request(req) return resp.new_audio_stream.stream From d924905782c06e2fa50f3c64bdfde8cd1497572e Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 27 Jan 2025 12:00:33 -0800 Subject: [PATCH 04/36] fix multiple import --- livekit-rtc/livekit/rtc/audio_stream.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index a89d86e7..eeb4ecb2 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -14,7 +14,8 @@ from __future__ import annotations -import asyncio, json +import asyncio +import json from dataclasses import dataclass from typing import Any, AsyncIterator, Optional From 8d36a7bdc152f39214a5c4d53e88f0731f2dc835 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 3 Feb 2025 13:07:22 -0800 Subject: [PATCH 05/36] update submodule --- livekit-rtc/rust-sdks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index aa3be1b3..1170691e 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit aa3be1b3f1bdd3c1cb0fed686ebeeb30c51c2e64 +Subproject commit 1170691ef8282d0a76409ff23e9fd8a4d68bd1c4 From 0602bd21119fef9b3ea90a3b0b72fd1b571db917 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 3 Feb 2025 13:13:56 -0800 Subject: [PATCH 06/36] update submodule --- livekit-rtc/rust-sdks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index 1170691e..c917ee13 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit 1170691ef8282d0a76409ff23e9fd8a4d68bd1c4 +Subproject commit c917ee13f6c45853ace129e572f37a16353ae884 From 7db3afd16d12458920ac6f05fcdb5f64f5699525 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 3 Feb 2025 13:18:37 -0800 Subject: [PATCH 07/36] update submodule --- livekit-rtc/rust-sdks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index c917ee13..4f35284b 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit c917ee13f6c45853ace129e572f37a16353ae884 +Subproject commit 4f35284b5933a007ca837c5de9ff887809e0741c From 781c8e0f32591d9d3c4408826557fd26c66911ab Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 3 Feb 2025 16:38:53 -0800 Subject: [PATCH 08/36] change plugin interface --- .../livekit/rtc/_proto/audio_frame_pb2.py | 28 ++++++++-------- .../livekit/rtc/_proto/audio_frame_pb2.pyi | 17 ++++++++-- livekit-rtc/livekit/rtc/audio_filter.py | 10 ++++++ livekit-rtc/livekit/rtc/audio_stream.py | 33 ++++++++++++------- livekit-rtc/livekit/rtc/room.py | 25 +++++++++++++- livekit-rtc/livekit/rtc/track.py | 7 ++++ livekit-rtc/rust-sdks | 2 +- 7 files changed, 92 insertions(+), 30 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index c0a12a00..79d0963c 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -26,7 +26,7 @@ from . import track_pb2 as track__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc1\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x05 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x85\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x07 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"3\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\"N\n\x1dLoadAudioFilterPluginResponse\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc1\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x05 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x85\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x07 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"Z\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\x12\x14\n\x0c\x64\x65pendencies\x18\x02 \x03(\t\x12\x0f\n\x07options\x18\x03 \x02(\t\"N\n\x1dLoadAudioFilterPluginResponse\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -34,16 +34,16 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3636 - _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3710 - _globals['_SOXQUALITYRECIPE']._serialized_start=3713 - _globals['_SOXQUALITYRECIPE']._serialized_end=3852 - _globals['_SOXFLAGBITS']._serialized_start=3855 - _globals['_SOXFLAGBITS']._serialized_end=4006 - _globals['_AUDIOSTREAMTYPE']._serialized_start=4008 - _globals['_AUDIOSTREAMTYPE']._serialized_end=4073 - _globals['_AUDIOSOURCETYPE']._serialized_start=4075 - _globals['_AUDIOSOURCETYPE']._serialized_end=4117 + _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3675 + _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3749 + _globals['_SOXQUALITYRECIPE']._serialized_start=3752 + _globals['_SOXQUALITYRECIPE']._serialized_end=3891 + _globals['_SOXFLAGBITS']._serialized_start=3894 + _globals['_SOXFLAGBITS']._serialized_end=4045 + _globals['_AUDIOSTREAMTYPE']._serialized_start=4047 + _globals['_AUDIOSTREAMTYPE']._serialized_end=4112 + _globals['_AUDIOSOURCETYPE']._serialized_start=4114 + _globals['_AUDIOSOURCETYPE']._serialized_end=4156 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_start=64 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=257 _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=259 @@ -115,7 +115,7 @@ _globals['_OWNEDSOXRESAMPLER']._serialized_start=3388 _globals['_OWNEDSOXRESAMPLER']._serialized_end=3501 _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_start=3503 - _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=3554 - _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=3556 - _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=3634 + _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=3593 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=3595 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=3673 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi index b8304d30..c27778c3 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi @@ -17,7 +17,9 @@ limitations under the License. """ import builtins +import collections.abc import google.protobuf.descriptor +import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message from . import handle_pb2 @@ -871,14 +873,25 @@ class LoadAudioFilterPluginRequest(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor PLUGIN_PATH_FIELD_NUMBER: builtins.int + DEPENDENCIES_FIELD_NUMBER: builtins.int + OPTIONS_FIELD_NUMBER: builtins.int plugin_path: builtins.str + """path for ffi audio filter plugin""" + options: builtins.str + """JSON string options that is passed to on_load plugin function""" + @property + def dependencies(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """Optional: paths for dependency dylibs""" + def __init__( self, *, plugin_path: builtins.str | None = ..., + dependencies: collections.abc.Iterable[builtins.str] | None = ..., + options: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["plugin_path", b"plugin_path"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["plugin_path", b"plugin_path"]) -> None: ... + def HasField(self, field_name: typing.Literal["options", b"options", "plugin_path", b"plugin_path"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["dependencies", b"dependencies", "options", b"options", "plugin_path", b"plugin_path"]) -> None: ... global___LoadAudioFilterPluginRequest = LoadAudioFilterPluginRequest diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index 11ab0b93..029b704a 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -1,3 +1,5 @@ +import json + from ._ffi_client import FfiClient, FfiHandle from ._proto import ffi_pb2 as proto_ffi @@ -6,11 +8,19 @@ class AudioFilter: def __init__( self, path: str, + url: str, + token: str, + dependencies: list[str] = None ) -> None: self._path = path req = proto_ffi.FfiRequest() req.load_audio_filter_plugin.plugin_path = path + req.load_audio_filter_plugin.dependencies[:] = dependencies if dependencies is not None else [] + req.load_audio_filter_plugin.options = json.dumps({ + "url": url, + "token": token, + }) resp = FfiClient.instance.request(req) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index eeb4ecb2..c4a278a3 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -55,8 +55,8 @@ def __init__( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - audio_filter_handle: int | None = None, - audio_filter_options: dict[str, Any] | None = None, + enable_filter: Any = None, + filter_options: dict[str, Any] | None = None, **kwargs, ) -> None: """Initialize an `AudioStream` instance. @@ -88,12 +88,21 @@ def __init__( self._track: Track | None = track self._sample_rate = sample_rate self._num_channels = num_channels - self._audio_filter_handle = audio_filter_handle - self._audio_filter_options = audio_filter_options self._loop = loop or asyncio.get_event_loop() self._ffi_queue = FfiClient.instance.queue.subscribe(self._loop) self._queue: RingQueue[AudioFrameEvent | None] = RingQueue(capacity) + self._audio_filter_handle = None + self._audio_filter_options = None + if enable_filter is not None: + room = track.room() + if room is None: + raise RuntimeError("Unexpected track") + handle = room._filter_handle(enable_filter) + if handle is None: + raise RuntimeError("audio filter is not enabled for the room") + self._audio_filter_handle = handle + self._audio_filter_options = enable_filter.filter_options(filter_options) self._task = self._loop.create_task(self._run()) self._task.add_done_callback(task_done_logger) @@ -117,8 +126,8 @@ def from_participant( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - audio_filter_handle: int | None = None, - audio_filter_options: dict[str, Any] | None = None, + enable_filter: Any = None, + filter_options: dict[str, Any] | None = None, ) -> AudioStream: """Create an `AudioStream` from a participant's audio track. @@ -151,8 +160,8 @@ def from_participant( track=None, # type: ignore sample_rate=sample_rate, num_channels=num_channels, - audio_filter_handle=audio_filter_handle, - audio_filter_options=audio_filter_options, + enable_filter=enable_filter, + filter_options=filter_options, ) @classmethod @@ -164,8 +173,8 @@ def from_track( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - audio_filter_handle: int | None = None, - audio_filter_options: dict[str, Any] | None = None, + enable_filter: Any = None, + filter_options: dict[str, Any] | None = None, ) -> AudioStream: """Create an `AudioStream` from an existing audio track. @@ -194,8 +203,8 @@ def from_track( capacity=capacity, sample_rate=sample_rate, num_channels=num_channels, - audio_filter_handle=audio_filter_handle, - audio_filter_options=audio_filter_options, + enable_filter=enable_filter, + filter_options=filter_options, ) def __del__(self) -> None: diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index e35d2bbc..e9f95d79 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -33,6 +33,7 @@ from .track import RemoteAudioTrack, RemoteVideoTrack from .track_publication import RemoteTrackPublication, TrackPublication from .transcription import TranscriptionSegment +from .audio_filter import AudioFilter EventTypes = Literal[ "participant_connected", @@ -119,7 +120,7 @@ def __init__(self, message: str): class Room(EventEmitter[EventTypes]): - def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: + def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None, filters: Optional[List[Any]] = None) -> None: """Initializes a new Room instance. Parameters: @@ -137,6 +138,8 @@ def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: self._connection_state = ConnectionState.CONN_DISCONNECTED self._first_sid_future = asyncio.Future[str]() self._local_participant: LocalParticipant | None = None + self._filters = filters if filters is not None else [] + self._filter_instances = {} def __del__(self) -> None: if self._ffi_handle is not None: @@ -358,6 +361,18 @@ def on_participant_connected(participant): options.rtc_config.ice_servers ) + for f in self._filters: + if hasattr(f, 'dependencies_path'): + deps = f.dependencies_path() or [] + else: + deps = [] + self._filter_instances[f] = AudioFilter( + path = f.plugin_path(), + url = url, + token = token, + dependencies = deps, + ) + # subscribe before connecting so we don't miss any events self._ffi_queue = FfiClient.instance.queue.subscribe(self._loop) @@ -393,6 +408,7 @@ def on_participant_connected(participant): publication = RemoteTrackPublication(owned_publication_info) rp._track_publications[publication.sid] = publication + # start listening to room events self._task = self._loop.create_task(self._listen_task()) @@ -520,6 +536,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): ) elif track_info.kind == TrackKind.KIND_AUDIO: remote_audio_track = RemoteAudioTrack(owned_track_info) + remote_audio_track._set_room(self) # set room ref for audio filter rpublication.track = remote_audio_track self.emit( "track_subscribed", remote_audio_track, rpublication, rparticipant @@ -739,6 +756,12 @@ def _create_remote_participant( self._remote_participants[participant.identity] = participant return participant + def _filter_handle(self, plugin) -> int | None: + f = self._filter_instances.get(plugin) + if f: + return f.handle() + return None + def __repr__(self) -> str: sid = "unknown" if self._first_sid_future.done(): diff --git a/livekit-rtc/livekit/rtc/track.py b/livekit-rtc/livekit/rtc/track.py index 8a6fe692..a064ac0b 100644 --- a/livekit-rtc/livekit/rtc/track.py +++ b/livekit-rtc/livekit/rtc/track.py @@ -21,6 +21,7 @@ if TYPE_CHECKING: from .audio_source import AudioSource from .video_source import VideoSource + from .room import Room class Track: @@ -136,6 +137,12 @@ def __init__(self, info: proto_track.OwnedTrack): def __repr__(self) -> str: return f"rtc.RemoteAudioTrack(sid={self.sid}, name={self.name})" + def room(self) -> "Room | None": + return self._room + + def _set_room(self, room: "Room"): + self._room = room + class RemoteVideoTrack(Track): def __init__(self, info: proto_track.OwnedTrack): diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index 4f35284b..8c12b38d 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit 4f35284b5933a007ca837c5de9ff887809e0741c +Subproject commit 8c12b38dae545ca731497e1cddf6a6c7bf738049 From ce435eb3523dceed969ecb7f5e683a0bbe3b3e86 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2025 04:22:41 +0000 Subject: [PATCH 09/36] generated protobuf --- livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/ffi_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/handle_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/participant_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/rpc_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/stats_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/track_pb2.py | 12 +----------- .../livekit/rtc/_proto/track_publication_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py | 12 +----------- 11 files changed, 11 insertions(+), 121 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index 79d0963c..7ec17f52 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: audio_frame.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'audio_frame.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py index 3d5d637a..482deb8a 100644 --- a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: e2ee.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'e2ee.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index 3eb153cc..96700e02 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: ffi.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'ffi.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py index 2c19a638..98d253b4 100644 --- a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: handle.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'handle.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py index 88eff7e4..b4425bd1 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: participant.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'participant.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index cd6cf979..fac776ec 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: room.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'room.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py index 8742ff25..1b6302cd 100644 --- a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: rpc.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'rpc.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py index 5d980d06..2cbdb1cd 100644 --- a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: stats.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'stats.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_pb2.py index 43988a1c..5e3d1691 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: track.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'track.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py index b58568d5..22a19081 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: track_publication.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'track_publication.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py index 5bf179d6..bcbd99e9 100644 --- a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: video_frame.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'video_frame.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() From 1d3b647be2c81efd13149db9289ea6e9dd3b5ea7 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 5 Feb 2025 20:23:18 -0800 Subject: [PATCH 10/36] ruff --- livekit-rtc/livekit/rtc/audio_filter.py | 20 ++++++++++---------- livekit-rtc/livekit/rtc/room.py | 19 +++++++++++-------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index 029b704a..526497e4 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -6,21 +6,21 @@ class AudioFilter: def __init__( - self, - path: str, - url: str, - token: str, - dependencies: list[str] = None + self, path: str, url: str, token: str, dependencies: list[str] = None ) -> None: self._path = path req = proto_ffi.FfiRequest() req.load_audio_filter_plugin.plugin_path = path - req.load_audio_filter_plugin.dependencies[:] = dependencies if dependencies is not None else [] - req.load_audio_filter_plugin.options = json.dumps({ - "url": url, - "token": token, - }) + req.load_audio_filter_plugin.dependencies[:] = ( + dependencies if dependencies is not None else [] + ) + req.load_audio_filter_plugin.options = json.dumps( + { + "url": url, + "token": token, + } + ) resp = FfiClient.instance.request(req) diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 73af4f87..300d48bc 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -127,7 +127,11 @@ def __init__(self, message: str): class Room(EventEmitter[EventTypes]): - def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None, filters: Optional[List[Any]] = None) -> None: + def __init__( + self, + loop: Optional[asyncio.AbstractEventLoop] = None, + filters: Optional[List[Any]] = None, + ) -> None: """Initializes a new Room instance. Parameters: @@ -375,15 +379,15 @@ def on_participant_connected(participant): ) for f in self._filters: - if hasattr(f, 'dependencies_path'): + if hasattr(f, "dependencies_path"): deps = f.dependencies_path() or [] else: deps = [] self._filter_instances[f] = AudioFilter( - path = f.plugin_path(), - url = url, - token = token, - dependencies = deps, + path=f.plugin_path(), + url=url, + token=token, + dependencies=deps, ) # subscribe before connecting so we don't miss any events @@ -421,7 +425,6 @@ def on_participant_connected(participant): publication = RemoteTrackPublication(owned_publication_info) rp._track_publications[publication.sid] = publication - # start listening to room events self._task = self._loop.create_task(self._listen_task()) @@ -573,7 +576,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): ) elif track_info.kind == TrackKind.KIND_AUDIO: remote_audio_track = RemoteAudioTrack(owned_track_info) - remote_audio_track._set_room(self) # set room ref for audio filter + remote_audio_track._set_room(self) # set room ref for audio filter rpublication.track = remote_audio_track self.emit( "track_subscribed", remote_audio_track, rpublication, rparticipant From e03cda48512b483e351b1d6b2bff3bb1981b8fc4 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 5 Feb 2025 20:25:13 -0800 Subject: [PATCH 11/36] add types --- livekit-rtc/livekit/rtc/room.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 300d48bc..50eb3313 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -17,7 +17,7 @@ import ctypes import logging from dataclasses import dataclass, field -from typing import Callable, Dict, Literal, Optional, cast, Mapping +from typing import Callable, Dict, Literal, Optional, cast, Mapping, List, Any from .event_emitter import EventEmitter from ._ffi_client import FfiClient, FfiHandle From d93b2f3d9b44fb1e6c9a26c7a3fd6a0a1c3d5833 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Thu, 6 Feb 2025 10:21:21 -0800 Subject: [PATCH 12/36] fix types --- livekit-rtc/livekit/rtc/audio_filter.py | 3 ++- livekit-rtc/livekit/rtc/audio_stream.py | 19 +++++++++++-------- livekit-rtc/livekit/rtc/room.py | 3 ++- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index 526497e4..52609616 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -1,4 +1,5 @@ import json +from typing import Optional from ._ffi_client import FfiClient, FfiHandle from ._proto import ffi_pb2 as proto_ffi @@ -6,7 +7,7 @@ class AudioFilter: def __init__( - self, path: str, url: str, token: str, dependencies: list[str] = None + self, path: str, url: str, token: str, dependencies: Optional[list[str]] = None ) -> None: self._path = path diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index c4a278a3..6424e383 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -95,14 +95,17 @@ def __init__( self._audio_filter_handle = None self._audio_filter_options = None if enable_filter is not None: - room = track.room() - if room is None: - raise RuntimeError("Unexpected track") - handle = room._filter_handle(enable_filter) - if handle is None: - raise RuntimeError("audio filter is not enabled for the room") - self._audio_filter_handle = handle - self._audio_filter_options = enable_filter.filter_options(filter_options) + if isinstance(track, RemoteTrack): + room = track.room() + if room is None: + raise Exception("Unexpected track") + handle = room._filter_handle(enable_filter) + if handle is None: + raise Exception("audio filter is not enabled for the room") + self._audio_filter_handle = handle + self._audio_filter_options = enable_filter.filter_options(filter_options) + else: + raise TypeError("track is not a RemoteTrack") self._task = self._loop.create_task(self._run()) self._task.add_done_callback(task_done_logger) diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 50eb3313..42b0d23f 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -18,6 +18,7 @@ import logging from dataclasses import dataclass, field from typing import Callable, Dict, Literal, Optional, cast, Mapping, List, Any +from types import ModuleType from .event_emitter import EventEmitter from ._ffi_client import FfiClient, FfiHandle @@ -151,7 +152,7 @@ def __init__( self._first_sid_future = asyncio.Future[str]() self._local_participant: LocalParticipant | None = None self._filters = filters if filters is not None else [] - self._filter_instances = {} + self._filter_instances: Dict[ModuleType, AudioFilter] = {} self._text_stream_readers: Dict[str, TextStreamReader] = {} self._byte_stream_readers: Dict[str, ByteStreamReader] = {} From 9c5f506a371c9451698d526474aa0fb4844dcdb6 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Thu, 6 Feb 2025 13:10:53 -0800 Subject: [PATCH 13/36] this should be RemoteAudioTrack --- livekit-rtc/livekit/rtc/audio_stream.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index 6424e383..567fda92 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -26,7 +26,7 @@ from ._utils import RingQueue, task_done_logger from .audio_frame import AudioFrame from .participant import Participant -from .track import Track +from .track import Track, RemoteAudioTrack @dataclass @@ -95,7 +95,7 @@ def __init__( self._audio_filter_handle = None self._audio_filter_options = None if enable_filter is not None: - if isinstance(track, RemoteTrack): + if isinstance(track, RemoteAudioTrack): room = track.room() if room is None: raise Exception("Unexpected track") @@ -105,7 +105,7 @@ def __init__( self._audio_filter_handle = handle self._audio_filter_options = enable_filter.filter_options(filter_options) else: - raise TypeError("track is not a RemoteTrack") + raise TypeError("track is not a RemoteAudioTrack") self._task = self._loop.create_task(self._run()) self._task.add_done_callback(task_done_logger) From dd2e9732a95dff4f1ba4f3ed07b9d332da52e451 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Thu, 6 Feb 2025 13:11:50 -0800 Subject: [PATCH 14/36] revert debugging code --- livekit-rtc/livekit/rtc/_ffi_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/livekit/rtc/_ffi_client.py b/livekit-rtc/livekit/rtc/_ffi_client.py index 3b191b4d..0c7465e1 100644 --- a/livekit-rtc/livekit/rtc/_ffi_client.py +++ b/livekit-rtc/livekit/rtc/_ffi_client.py @@ -212,7 +212,7 @@ def __init__(self) -> None: self._queue = FfiQueue[proto_ffi.FfiEvent]() ffi_lib.livekit_ffi_initialize( - ffi_event_callback, False, b"python", __version__.encode("ascii") + ffi_event_callback, True, b"python", __version__.encode("ascii") ) @atexit.register From 1e499894af6d314abe68682abbf246cb0a6e984c Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Thu, 6 Feb 2025 13:15:38 -0800 Subject: [PATCH 15/36] fmt --- livekit-rtc/livekit/rtc/audio_stream.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index 567fda92..0f82d1ca 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -103,7 +103,9 @@ def __init__( if handle is None: raise Exception("audio filter is not enabled for the room") self._audio_filter_handle = handle - self._audio_filter_options = enable_filter.filter_options(filter_options) + self._audio_filter_options = enable_filter.filter_options( + filter_options + ) else: raise TypeError("track is not a RemoteAudioTrack") self._task = self._loop.create_task(self._run()) From ac18abcb129084f1042d81e49f35aac33c89c1bc Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Tue, 11 Feb 2025 17:25:38 -0800 Subject: [PATCH 16/36] update proto --- .../livekit/rtc/_proto/audio_frame_pb2.py | 40 ++- .../livekit/rtc/_proto/audio_frame_pb2.pyi | 8 +- livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/ffi_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/handle_pb2.py | 12 +- .../livekit/rtc/_proto/participant_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 284 +++++++++--------- livekit-rtc/livekit/rtc/_proto/room_pb2.pyi | 6 +- livekit-rtc/livekit/rtc/_proto/rpc_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/stats_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/track_pb2.py | 12 +- .../rtc/_proto/track_publication_pb2.py | 12 +- .../livekit/rtc/_proto/video_frame_pb2.py | 12 +- livekit-rtc/rust-sdks | 2 +- 14 files changed, 279 insertions(+), 169 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index 7ec17f52..1a0173fb 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: audio_frame.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'audio_frame.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -16,7 +26,7 @@ from . import track_pb2 as track__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc1\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x05 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x85\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x07 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"Z\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\x12\x14\n\x0c\x64\x65pendencies\x18\x02 \x03(\t\x12\x0f\n\x07options\x18\x03 \x02(\t\"N\n\x1dLoadAudioFilterPluginResponse\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc1\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x05 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x85\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x07 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"I\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\x12\x14\n\x0c\x64\x65pendencies\x18\x02 \x03(\t\"N\n\x1dLoadAudioFilterPluginResponse\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,16 +34,16 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3675 - _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3749 - _globals['_SOXQUALITYRECIPE']._serialized_start=3752 - _globals['_SOXQUALITYRECIPE']._serialized_end=3891 - _globals['_SOXFLAGBITS']._serialized_start=3894 - _globals['_SOXFLAGBITS']._serialized_end=4045 - _globals['_AUDIOSTREAMTYPE']._serialized_start=4047 - _globals['_AUDIOSTREAMTYPE']._serialized_end=4112 - _globals['_AUDIOSOURCETYPE']._serialized_start=4114 - _globals['_AUDIOSOURCETYPE']._serialized_end=4156 + _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3658 + _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3732 + _globals['_SOXQUALITYRECIPE']._serialized_start=3735 + _globals['_SOXQUALITYRECIPE']._serialized_end=3874 + _globals['_SOXFLAGBITS']._serialized_start=3877 + _globals['_SOXFLAGBITS']._serialized_end=4028 + _globals['_AUDIOSTREAMTYPE']._serialized_start=4030 + _globals['_AUDIOSTREAMTYPE']._serialized_end=4095 + _globals['_AUDIOSOURCETYPE']._serialized_start=4097 + _globals['_AUDIOSOURCETYPE']._serialized_end=4139 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_start=64 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=257 _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=259 @@ -105,7 +115,7 @@ _globals['_OWNEDSOXRESAMPLER']._serialized_start=3388 _globals['_OWNEDSOXRESAMPLER']._serialized_end=3501 _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_start=3503 - _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=3593 - _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=3595 - _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=3673 + _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=3576 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=3578 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=3656 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi index c27778c3..5b9b4921 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi @@ -874,11 +874,8 @@ class LoadAudioFilterPluginRequest(google.protobuf.message.Message): PLUGIN_PATH_FIELD_NUMBER: builtins.int DEPENDENCIES_FIELD_NUMBER: builtins.int - OPTIONS_FIELD_NUMBER: builtins.int plugin_path: builtins.str """path for ffi audio filter plugin""" - options: builtins.str - """JSON string options that is passed to on_load plugin function""" @property def dependencies(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """Optional: paths for dependency dylibs""" @@ -888,10 +885,9 @@ class LoadAudioFilterPluginRequest(google.protobuf.message.Message): *, plugin_path: builtins.str | None = ..., dependencies: collections.abc.Iterable[builtins.str] | None = ..., - options: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["options", b"options", "plugin_path", b"plugin_path"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["dependencies", b"dependencies", "options", b"options", "plugin_path", b"plugin_path"]) -> None: ... + def HasField(self, field_name: typing.Literal["plugin_path", b"plugin_path"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["dependencies", b"dependencies", "plugin_path", b"plugin_path"]) -> None: ... global___LoadAudioFilterPluginRequest = LoadAudioFilterPluginRequest diff --git a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py index 482deb8a..3d5d637a 100644 --- a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: e2ee.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'e2ee.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index 96700e02..3eb153cc 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: ffi.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'ffi.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py index 98d253b4..2c19a638 100644 --- a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: handle.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'handle.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py index b4425bd1..88eff7e4 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: participant.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'participant.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index fac776ec..d1f492f5 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: room.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'room.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -20,7 +30,7 @@ from . import stats_pb2 as stats__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \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\"\xa9\x11\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\x12I\n\x16stream_header_received\x18\x1e \x01(\x0b\x32\'.livekit.proto.DataStreamHeaderReceivedH\x00\x12G\n\x15stream_chunk_received\x18\x1f \x01(\x0b\x32&.livekit.proto.DataStreamChunkReceivedH\x00\x12K\n\x17stream_trailer_received\x18 \x01(\x0b\x32(.livekit.proto.DataStreamTrailerReceivedH\x00\x12i\n\"data_channel_low_threshold_changed\x18! \x01(\x0b\x32;.livekit.proto.DataChannelBufferedAmountLowThresholdChangedH\x00\x42\t\n\x07message\"\x9a\x01\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\x12.\n&lossy_dc_buffered_amount_low_threshold\x18\x04 \x02(\x04\x12\x31\n)reliable_dc_buffered_amount_low_threshold\x18\x05 \x02(\x04\"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\"\x8e\x07\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 \x01(\x05\x12\x1a\n\x12reply_to_stream_id\x18\x03 \x01(\t\x12\x1b\n\x13\x61ttached_stream_ids\x18\x04 \x03(\t\x12\x11\n\tgenerated\x18\x05 \x01(\x08\x1a\x1a\n\nByteHeader\x12\x0c\n\x04name\x18\x01 \x02(\t\x1a\xeb\x02\n\x06Header\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\x11\n\tmime_type\x18\x03 \x02(\t\x12\r\n\x05topic\x18\x04 \x02(\t\x12\x14\n\x0ctotal_length\x18\x05 \x01(\x04\x12\x44\n\nattributes\x18\x06 \x03(\x0b\x32\x30.livekit.proto.DataStream.Header.AttributesEntry\x12;\n\x0btext_header\x18\x07 \x01(\x0b\x32$.livekit.proto.DataStream.TextHeaderH\x00\x12;\n\x0b\x62yte_header\x18\x08 \x01(\x0b\x32$.livekit.proto.DataStream.ByteHeaderH\x00\x1a\x31\n\x0f\x41ttributesEntry\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\x1a]\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\x0f\n\x07version\x18\x04 \x01(\x05\x12\n\n\x02iv\x18\x05 \x01(\x0c\x1a\xa6\x01\n\x07Trailer\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x0e\n\x06reason\x18\x02 \x02(\t\x12\x45\n\nattributes\x18\x03 \x03(\x0b\x32\x31.livekit.proto.DataStream.Trailer.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"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\"j\n\x18\x44\x61taStreamHeaderReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\"g\n\x17\x44\x61taStreamChunkReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\"m\n\x19\x44\x61taStreamTrailerReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\"\xa6\x01\n\x17SendStreamHeaderRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa3\x01\n\x16SendStreamChunkRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa9\x01\n\x18SendStreamTrailerRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\",\n\x18SendStreamHeaderResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"+\n\x17SendStreamChunkResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"-\n\x19SendStreamTrailerResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SendStreamHeaderCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\":\n\x17SendStreamChunkCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"<\n\x19SendStreamTrailerCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x93\x01\n/SetDataChannelBufferedAmountLowThresholdRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\tthreshold\x18\x02 \x02(\x04\x12+\n\x04kind\x18\x03 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\"2\n0SetDataChannelBufferedAmountLowThresholdResponse\"n\n,DataChannelBufferedAmountLowThresholdChanged\x12+\n\x04kind\x18\x01 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x11\n\tthreshold\x18\x02 \x02(\x04*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') +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\"\xdc\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\x12\x1c\n\x14\x61udio_filter_handles\x18\x07 \x03(\x04\"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\"\xa9\x11\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\x12I\n\x16stream_header_received\x18\x1e \x01(\x0b\x32\'.livekit.proto.DataStreamHeaderReceivedH\x00\x12G\n\x15stream_chunk_received\x18\x1f \x01(\x0b\x32&.livekit.proto.DataStreamChunkReceivedH\x00\x12K\n\x17stream_trailer_received\x18 \x01(\x0b\x32(.livekit.proto.DataStreamTrailerReceivedH\x00\x12i\n\"data_channel_low_threshold_changed\x18! \x01(\x0b\x32;.livekit.proto.DataChannelBufferedAmountLowThresholdChangedH\x00\x42\t\n\x07message\"\x9a\x01\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\x12.\n&lossy_dc_buffered_amount_low_threshold\x18\x04 \x02(\x04\x12\x31\n)reliable_dc_buffered_amount_low_threshold\x18\x05 \x02(\x04\"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\"\x8e\x07\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 \x01(\x05\x12\x1a\n\x12reply_to_stream_id\x18\x03 \x01(\t\x12\x1b\n\x13\x61ttached_stream_ids\x18\x04 \x03(\t\x12\x11\n\tgenerated\x18\x05 \x01(\x08\x1a\x1a\n\nByteHeader\x12\x0c\n\x04name\x18\x01 \x02(\t\x1a\xeb\x02\n\x06Header\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\x11\n\tmime_type\x18\x03 \x02(\t\x12\r\n\x05topic\x18\x04 \x02(\t\x12\x14\n\x0ctotal_length\x18\x05 \x01(\x04\x12\x44\n\nattributes\x18\x06 \x03(\x0b\x32\x30.livekit.proto.DataStream.Header.AttributesEntry\x12;\n\x0btext_header\x18\x07 \x01(\x0b\x32$.livekit.proto.DataStream.TextHeaderH\x00\x12;\n\x0b\x62yte_header\x18\x08 \x01(\x0b\x32$.livekit.proto.DataStream.ByteHeaderH\x00\x1a\x31\n\x0f\x41ttributesEntry\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\x1a]\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\x0f\n\x07version\x18\x04 \x01(\x05\x12\n\n\x02iv\x18\x05 \x01(\x0c\x1a\xa6\x01\n\x07Trailer\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x0e\n\x06reason\x18\x02 \x02(\t\x12\x45\n\nattributes\x18\x03 \x03(\x0b\x32\x31.livekit.proto.DataStream.Trailer.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"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\"j\n\x18\x44\x61taStreamHeaderReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\"g\n\x17\x44\x61taStreamChunkReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\"m\n\x19\x44\x61taStreamTrailerReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\"\xa6\x01\n\x17SendStreamHeaderRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa3\x01\n\x16SendStreamChunkRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa9\x01\n\x18SendStreamTrailerRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\",\n\x18SendStreamHeaderResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"+\n\x17SendStreamChunkResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"-\n\x19SendStreamTrailerResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SendStreamHeaderCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\":\n\x17SendStreamChunkCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"<\n\x19SendStreamTrailerCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x93\x01\n/SetDataChannelBufferedAmountLowThresholdRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\tthreshold\x18\x02 \x02(\x04\x12+\n\x04kind\x18\x03 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\"2\n0SetDataChannelBufferedAmountLowThresholdResponse\"n\n,DataChannelBufferedAmountLowThresholdChanged\x12+\n\x04kind\x18\x01 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x11\n\tthreshold\x18\x02 \x02(\x04*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) @@ -34,16 +44,16 @@ _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._loaded_options = None _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_ICETRANSPORTTYPE']._serialized_start=11988 - _globals['_ICETRANSPORTTYPE']._serialized_end=12068 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=12070 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=12137 - _globals['_CONNECTIONQUALITY']._serialized_start=12139 - _globals['_CONNECTIONQUALITY']._serialized_end=12235 - _globals['_CONNECTIONSTATE']._serialized_start=12237 - _globals['_CONNECTIONSTATE']._serialized_end=12320 - _globals['_DATAPACKETKIND']._serialized_start=12322 - _globals['_DATAPACKETKIND']._serialized_end=12373 + _globals['_ICETRANSPORTTYPE']._serialized_start=12018 + _globals['_ICETRANSPORTTYPE']._serialized_end=12098 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=12100 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=12167 + _globals['_CONNECTIONQUALITY']._serialized_start=12169 + _globals['_CONNECTIONQUALITY']._serialized_end=12265 + _globals['_CONNECTIONSTATE']._serialized_start=12267 + _globals['_CONNECTIONSTATE']._serialized_end=12350 + _globals['_DATAPACKETKIND']._serialized_start=12352 + _globals['_DATAPACKETKIND']._serialized_end=12403 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -141,129 +151,129 @@ _globals['_RTCCONFIG']._serialized_start=4137 _globals['_RTCCONFIG']._serialized_end=4333 _globals['_ROOMOPTIONS']._serialized_start=4336 - _globals['_ROOMOPTIONS']._serialized_end=4526 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=4528 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=4647 - _globals['_BUFFERINFO']._serialized_start=4649 - _globals['_BUFFERINFO']._serialized_end=4697 - _globals['_OWNEDBUFFER']._serialized_start=4699 - _globals['_OWNEDBUFFER']._serialized_end=4800 - _globals['_ROOMEVENT']._serialized_start=4803 - _globals['_ROOMEVENT']._serialized_end=7020 - _globals['_ROOMINFO']._serialized_start=7023 - _globals['_ROOMINFO']._serialized_end=7177 - _globals['_OWNEDROOM']._serialized_start=7179 - _globals['_OWNEDROOM']._serialized_end=7276 - _globals['_PARTICIPANTCONNECTED']._serialized_start=7278 - _globals['_PARTICIPANTCONNECTED']._serialized_end=7347 - _globals['_PARTICIPANTDISCONNECTED']._serialized_start=7349 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=7404 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=7406 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=7446 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=7448 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=7496 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=7498 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=7539 - _globals['_TRACKPUBLISHED']._serialized_start=7541 - _globals['_TRACKPUBLISHED']._serialized_end=7646 - _globals['_TRACKUNPUBLISHED']._serialized_start=7648 - _globals['_TRACKUNPUBLISHED']._serialized_end=7721 - _globals['_TRACKSUBSCRIBED']._serialized_start=7723 - _globals['_TRACKSUBSCRIBED']._serialized_end=7812 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=7814 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=7882 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=7884 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=7973 - _globals['_TRACKMUTED']._serialized_start=7975 - _globals['_TRACKMUTED']._serialized_end=8036 - _globals['_TRACKUNMUTED']._serialized_start=8038 - _globals['_TRACKUNMUTED']._serialized_end=8101 - _globals['_E2EESTATECHANGED']._serialized_start=8103 - _globals['_E2EESTATECHANGED']._serialized_end=8198 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=8200 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=8255 - _globals['_ROOMMETADATACHANGED']._serialized_start=8257 - _globals['_ROOMMETADATACHANGED']._serialized_end=8296 - _globals['_ROOMSIDCHANGED']._serialized_start=8298 - _globals['_ROOMSIDCHANGED']._serialized_end=8327 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=8329 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=8405 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=8408 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=8580 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=8582 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=8650 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=8652 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=8759 - _globals['_USERPACKET']._serialized_start=8761 - _globals['_USERPACKET']._serialized_end=8830 - _globals['_CHATMESSAGE']._serialized_start=8832 - _globals['_CHATMESSAGE']._serialized_end=8953 - _globals['_CHATMESSAGERECEIVED']._serialized_start=8955 - _globals['_CHATMESSAGERECEIVED']._serialized_end=9051 - _globals['_SIPDTMF']._serialized_start=9053 - _globals['_SIPDTMF']._serialized_end=9091 - _globals['_DATAPACKETRECEIVED']._serialized_start=9094 - _globals['_DATAPACKETRECEIVED']._serialized_end=9285 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=9287 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=9414 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=9416 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=9487 - _globals['_CONNECTED']._serialized_start=9489 - _globals['_CONNECTED']._serialized_end=9500 - _globals['_DISCONNECTED']._serialized_start=9502 - _globals['_DISCONNECTED']._serialized_end=9565 - _globals['_RECONNECTING']._serialized_start=9567 - _globals['_RECONNECTING']._serialized_end=9581 - _globals['_RECONNECTED']._serialized_start=9583 - _globals['_RECONNECTED']._serialized_end=9596 - _globals['_ROOMEOS']._serialized_start=9598 - _globals['_ROOMEOS']._serialized_end=9607 - _globals['_DATASTREAM']._serialized_start=9610 - _globals['_DATASTREAM']._serialized_end=10520 - _globals['_DATASTREAM_TEXTHEADER']._serialized_start=9625 - _globals['_DATASTREAM_TEXTHEADER']._serialized_end=9795 - _globals['_DATASTREAM_BYTEHEADER']._serialized_start=9797 - _globals['_DATASTREAM_BYTEHEADER']._serialized_end=9823 - _globals['_DATASTREAM_HEADER']._serialized_start=9826 - _globals['_DATASTREAM_HEADER']._serialized_end=10189 - _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_start=10122 - _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_end=10171 - _globals['_DATASTREAM_CHUNK']._serialized_start=10191 - _globals['_DATASTREAM_CHUNK']._serialized_end=10284 - _globals['_DATASTREAM_TRAILER']._serialized_start=10287 - _globals['_DATASTREAM_TRAILER']._serialized_end=10453 - _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_start=10122 - _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_end=10171 - _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=10455 - _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=10520 - _globals['_DATASTREAMHEADERRECEIVED']._serialized_start=10522 - _globals['_DATASTREAMHEADERRECEIVED']._serialized_end=10628 - _globals['_DATASTREAMCHUNKRECEIVED']._serialized_start=10630 - _globals['_DATASTREAMCHUNKRECEIVED']._serialized_end=10733 - _globals['_DATASTREAMTRAILERRECEIVED']._serialized_start=10735 - _globals['_DATASTREAMTRAILERRECEIVED']._serialized_end=10844 - _globals['_SENDSTREAMHEADERREQUEST']._serialized_start=10847 - _globals['_SENDSTREAMHEADERREQUEST']._serialized_end=11013 - _globals['_SENDSTREAMCHUNKREQUEST']._serialized_start=11016 - _globals['_SENDSTREAMCHUNKREQUEST']._serialized_end=11179 - _globals['_SENDSTREAMTRAILERREQUEST']._serialized_start=11182 - _globals['_SENDSTREAMTRAILERREQUEST']._serialized_end=11351 - _globals['_SENDSTREAMHEADERRESPONSE']._serialized_start=11353 - _globals['_SENDSTREAMHEADERRESPONSE']._serialized_end=11397 - _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_start=11399 - _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_end=11442 - _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_start=11444 - _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_end=11489 - _globals['_SENDSTREAMHEADERCALLBACK']._serialized_start=11491 - _globals['_SENDSTREAMHEADERCALLBACK']._serialized_end=11550 - _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_start=11552 - _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_end=11610 - _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_start=11612 - _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_end=11672 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_start=11675 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_end=11822 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_start=11824 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_end=11874 - _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_start=11876 - _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_end=11986 + _globals['_ROOMOPTIONS']._serialized_end=4556 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=4558 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=4677 + _globals['_BUFFERINFO']._serialized_start=4679 + _globals['_BUFFERINFO']._serialized_end=4727 + _globals['_OWNEDBUFFER']._serialized_start=4729 + _globals['_OWNEDBUFFER']._serialized_end=4830 + _globals['_ROOMEVENT']._serialized_start=4833 + _globals['_ROOMEVENT']._serialized_end=7050 + _globals['_ROOMINFO']._serialized_start=7053 + _globals['_ROOMINFO']._serialized_end=7207 + _globals['_OWNEDROOM']._serialized_start=7209 + _globals['_OWNEDROOM']._serialized_end=7306 + _globals['_PARTICIPANTCONNECTED']._serialized_start=7308 + _globals['_PARTICIPANTCONNECTED']._serialized_end=7377 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=7379 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=7434 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=7436 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=7476 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=7478 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=7526 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=7528 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=7569 + _globals['_TRACKPUBLISHED']._serialized_start=7571 + _globals['_TRACKPUBLISHED']._serialized_end=7676 + _globals['_TRACKUNPUBLISHED']._serialized_start=7678 + _globals['_TRACKUNPUBLISHED']._serialized_end=7751 + _globals['_TRACKSUBSCRIBED']._serialized_start=7753 + _globals['_TRACKSUBSCRIBED']._serialized_end=7842 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=7844 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=7912 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=7914 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=8003 + _globals['_TRACKMUTED']._serialized_start=8005 + _globals['_TRACKMUTED']._serialized_end=8066 + _globals['_TRACKUNMUTED']._serialized_start=8068 + _globals['_TRACKUNMUTED']._serialized_end=8131 + _globals['_E2EESTATECHANGED']._serialized_start=8133 + _globals['_E2EESTATECHANGED']._serialized_end=8228 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=8230 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=8285 + _globals['_ROOMMETADATACHANGED']._serialized_start=8287 + _globals['_ROOMMETADATACHANGED']._serialized_end=8326 + _globals['_ROOMSIDCHANGED']._serialized_start=8328 + _globals['_ROOMSIDCHANGED']._serialized_end=8357 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=8359 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=8435 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=8438 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=8610 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=8612 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=8680 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=8682 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=8789 + _globals['_USERPACKET']._serialized_start=8791 + _globals['_USERPACKET']._serialized_end=8860 + _globals['_CHATMESSAGE']._serialized_start=8862 + _globals['_CHATMESSAGE']._serialized_end=8983 + _globals['_CHATMESSAGERECEIVED']._serialized_start=8985 + _globals['_CHATMESSAGERECEIVED']._serialized_end=9081 + _globals['_SIPDTMF']._serialized_start=9083 + _globals['_SIPDTMF']._serialized_end=9121 + _globals['_DATAPACKETRECEIVED']._serialized_start=9124 + _globals['_DATAPACKETRECEIVED']._serialized_end=9315 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=9317 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=9444 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=9446 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=9517 + _globals['_CONNECTED']._serialized_start=9519 + _globals['_CONNECTED']._serialized_end=9530 + _globals['_DISCONNECTED']._serialized_start=9532 + _globals['_DISCONNECTED']._serialized_end=9595 + _globals['_RECONNECTING']._serialized_start=9597 + _globals['_RECONNECTING']._serialized_end=9611 + _globals['_RECONNECTED']._serialized_start=9613 + _globals['_RECONNECTED']._serialized_end=9626 + _globals['_ROOMEOS']._serialized_start=9628 + _globals['_ROOMEOS']._serialized_end=9637 + _globals['_DATASTREAM']._serialized_start=9640 + _globals['_DATASTREAM']._serialized_end=10550 + _globals['_DATASTREAM_TEXTHEADER']._serialized_start=9655 + _globals['_DATASTREAM_TEXTHEADER']._serialized_end=9825 + _globals['_DATASTREAM_BYTEHEADER']._serialized_start=9827 + _globals['_DATASTREAM_BYTEHEADER']._serialized_end=9853 + _globals['_DATASTREAM_HEADER']._serialized_start=9856 + _globals['_DATASTREAM_HEADER']._serialized_end=10219 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_start=10152 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_end=10201 + _globals['_DATASTREAM_CHUNK']._serialized_start=10221 + _globals['_DATASTREAM_CHUNK']._serialized_end=10314 + _globals['_DATASTREAM_TRAILER']._serialized_start=10317 + _globals['_DATASTREAM_TRAILER']._serialized_end=10483 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_start=10152 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_end=10201 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=10485 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=10550 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_start=10552 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_end=10658 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_start=10660 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_end=10763 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_start=10765 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_end=10874 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_start=10877 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_end=11043 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_start=11046 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_end=11209 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_start=11212 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_end=11381 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_start=11383 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_end=11427 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_start=11429 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_end=11472 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_start=11474 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_end=11519 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_start=11521 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_end=11580 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_start=11582 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_end=11640 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_start=11642 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_end=11702 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_start=11705 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_end=11852 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_start=11854 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_end=11904 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_start=11906 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_end=12016 # @@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 9607bfb0..40e25ffc 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -1135,6 +1135,7 @@ class RoomOptions(google.protobuf.message.Message): E2EE_FIELD_NUMBER: builtins.int RTC_CONFIG_FIELD_NUMBER: builtins.int JOIN_RETRIES_FIELD_NUMBER: builtins.int + AUDIO_FILTER_HANDLES_FIELD_NUMBER: builtins.int auto_subscribe: builtins.bool adaptive_stream: builtins.bool dynacast: builtins.bool @@ -1145,6 +1146,8 @@ class RoomOptions(google.protobuf.message.Message): def rtc_config(self) -> global___RtcConfig: """allow to setup a custom RtcConfiguration""" + @property + def audio_filter_handles(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... def __init__( self, *, @@ -1154,9 +1157,10 @@ class RoomOptions(google.protobuf.message.Message): e2ee: e2ee_pb2.E2eeOptions | None = ..., rtc_config: global___RtcConfig | None = ..., join_retries: builtins.int | None = ..., + audio_filter_handles: collections.abc.Iterable[builtins.int] | None = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "auto_subscribe", b"auto_subscribe", "dynacast", b"dynacast", "e2ee", b"e2ee", "join_retries", b"join_retries", "rtc_config", b"rtc_config"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "auto_subscribe", b"auto_subscribe", "dynacast", b"dynacast", "e2ee", b"e2ee", "join_retries", b"join_retries", "rtc_config", b"rtc_config"]) -> None: ... + def ClearField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "audio_filter_handles", b"audio_filter_handles", "auto_subscribe", b"auto_subscribe", "dynacast", b"dynacast", "e2ee", b"e2ee", "join_retries", b"join_retries", "rtc_config", b"rtc_config"]) -> None: ... global___RoomOptions = RoomOptions diff --git a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py index 1b6302cd..8742ff25 100644 --- a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: rpc.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'rpc.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py index 2cbdb1cd..5d980d06 100644 --- a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: stats.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'stats.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_pb2.py index 5e3d1691..43988a1c 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: track.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'track.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py index 22a19081..b58568d5 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: track_publication.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'track_publication.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py index bcbd99e9..5bf179d6 100644 --- a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: video_frame.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'video_frame.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index 00f3931e..ae64ab0b 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit 00f3931e3d1f0a5722d5e10545034670b54614e8 +Subproject commit ae64ab0bff52de78fa182d8c42748519ab834f2b From 1971ca101d3fcc4e0cc4d29e5e7a1559d1c4003b Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 12 Feb 2025 11:15:40 -0800 Subject: [PATCH 17/36] update rust-sdk and proto --- .../livekit/rtc/_proto/audio_frame_pb2.py | 168 +++++------ .../livekit/rtc/_proto/audio_frame_pb2.pyi | 20 +- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 276 +++++++++--------- livekit-rtc/livekit/rtc/_proto/room_pb2.pyi | 24 +- livekit-rtc/rust-sdks | 2 +- 5 files changed, 256 insertions(+), 234 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index 1a0173fb..3cd12ad5 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -26,7 +26,7 @@ from . import track_pb2 as track__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc1\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x05 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x85\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1b\n\x13\x61udio_filter_handle\x18\x07 \x01(\x04\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"I\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\x12\x14\n\x0c\x64\x65pendencies\x18\x02 \x03(\t\"N\n\x1dLoadAudioFilterPluginResponse\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc4\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1e\n\x16\x61udio_filter_module_id\x18\x05 \x01(\t\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x88\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1e\n\x16\x61udio_filter_module_id\x18\x07 \x01(\t\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"I\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\x12\x14\n\x0c\x64\x65pendencies\x18\x02 \x03(\t\"N\n\x1dLoadAudioFilterPluginResponse\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -34,88 +34,88 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3658 - _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3732 - _globals['_SOXQUALITYRECIPE']._serialized_start=3735 - _globals['_SOXQUALITYRECIPE']._serialized_end=3874 - _globals['_SOXFLAGBITS']._serialized_start=3877 - _globals['_SOXFLAGBITS']._serialized_end=4028 - _globals['_AUDIOSTREAMTYPE']._serialized_start=4030 - _globals['_AUDIOSTREAMTYPE']._serialized_end=4095 - _globals['_AUDIOSOURCETYPE']._serialized_start=4097 - _globals['_AUDIOSOURCETYPE']._serialized_end=4139 + _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3664 + _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3738 + _globals['_SOXQUALITYRECIPE']._serialized_start=3741 + _globals['_SOXQUALITYRECIPE']._serialized_end=3880 + _globals['_SOXFLAGBITS']._serialized_start=3883 + _globals['_SOXFLAGBITS']._serialized_end=4034 + _globals['_AUDIOSTREAMTYPE']._serialized_start=4036 + _globals['_AUDIOSTREAMTYPE']._serialized_end=4101 + _globals['_AUDIOSOURCETYPE']._serialized_start=4103 + _globals['_AUDIOSOURCETYPE']._serialized_end=4145 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_start=64 - _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=257 - _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=259 - _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_end=332 - _globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_start=335 - _globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_end=596 - _globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_start=598 - _globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_end=683 - _globals['_NEWAUDIOSOURCEREQUEST']._serialized_start=686 - _globals['_NEWAUDIOSOURCEREQUEST']._serialized_end=873 - _globals['_NEWAUDIOSOURCERESPONSE']._serialized_start=875 - _globals['_NEWAUDIOSOURCERESPONSE']._serialized_end=948 - _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_start=950 - _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_end=1052 - _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_start=1054 - _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_end=1099 - _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_start=1101 - _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_end=1161 - _globals['_CLEARAUDIOBUFFERREQUEST']._serialized_start=1163 - _globals['_CLEARAUDIOBUFFERREQUEST']._serialized_end=1211 - _globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_start=1213 - _globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_end=1239 - _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_start=1241 - _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_end=1267 - _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_start=1269 - _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_end=1351 - _globals['_REMIXANDRESAMPLEREQUEST']._serialized_start=1354 - _globals['_REMIXANDRESAMPLEREQUEST']._serialized_end=1501 - _globals['_REMIXANDRESAMPLERESPONSE']._serialized_start=1503 - _globals['_REMIXANDRESAMPLERESPONSE']._serialized_end=1583 - _globals['_NEWSOXRESAMPLERREQUEST']._serialized_start=1586 - _globals['_NEWSOXRESAMPLERREQUEST']._serialized_end=1870 - _globals['_NEWSOXRESAMPLERRESPONSE']._serialized_start=1872 - _globals['_NEWSOXRESAMPLERRESPONSE']._serialized_end=1980 - _globals['_PUSHSOXRESAMPLERREQUEST']._serialized_start=1982 - _globals['_PUSHSOXRESAMPLERREQUEST']._serialized_end=2065 - _globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_start=2067 - _globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_end=2142 - _globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_start=2144 - _globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_end=2196 - _globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_start=2198 - _globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_end=2274 - _globals['_AUDIOFRAMEBUFFERINFO']._serialized_start=2276 - _globals['_AUDIOFRAMEBUFFERINFO']._serialized_end=2388 - _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_start=2390 - _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_end=2511 - _globals['_AUDIOSTREAMINFO']._serialized_start=2513 - _globals['_AUDIOSTREAMINFO']._serialized_end=2576 - _globals['_OWNEDAUDIOSTREAM']._serialized_start=2578 - _globals['_OWNEDAUDIOSTREAM']._serialized_end=2689 - _globals['_AUDIOSTREAMEVENT']._serialized_start=2692 - _globals['_AUDIOSTREAMEVENT']._serialized_end=2851 - _globals['_AUDIOFRAMERECEIVED']._serialized_start=2853 - _globals['_AUDIOFRAMERECEIVED']._serialized_end=2926 - _globals['_AUDIOSTREAMEOS']._serialized_start=2928 - _globals['_AUDIOSTREAMEOS']._serialized_end=2944 - _globals['_AUDIOSOURCEOPTIONS']._serialized_start=2946 - _globals['_AUDIOSOURCEOPTIONS']._serialized_end=3047 - _globals['_AUDIOSOURCEINFO']._serialized_start=3049 - _globals['_AUDIOSOURCEINFO']._serialized_end=3112 - _globals['_OWNEDAUDIOSOURCE']._serialized_start=3114 - _globals['_OWNEDAUDIOSOURCE']._serialized_end=3225 - _globals['_AUDIORESAMPLERINFO']._serialized_start=3227 - _globals['_AUDIORESAMPLERINFO']._serialized_end=3247 - _globals['_OWNEDAUDIORESAMPLER']._serialized_start=3249 - _globals['_OWNEDAUDIORESAMPLER']._serialized_end=3366 - _globals['_SOXRESAMPLERINFO']._serialized_start=3368 - _globals['_SOXRESAMPLERINFO']._serialized_end=3386 - _globals['_OWNEDSOXRESAMPLER']._serialized_start=3388 - _globals['_OWNEDSOXRESAMPLER']._serialized_end=3501 - _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_start=3503 - _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=3576 - _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=3578 - _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=3656 + _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=260 + _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=262 + _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_end=335 + _globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_start=338 + _globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_end=602 + _globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_start=604 + _globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_end=689 + _globals['_NEWAUDIOSOURCEREQUEST']._serialized_start=692 + _globals['_NEWAUDIOSOURCEREQUEST']._serialized_end=879 + _globals['_NEWAUDIOSOURCERESPONSE']._serialized_start=881 + _globals['_NEWAUDIOSOURCERESPONSE']._serialized_end=954 + _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_start=956 + _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_end=1058 + _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_start=1060 + _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_end=1105 + _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_start=1107 + _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_end=1167 + _globals['_CLEARAUDIOBUFFERREQUEST']._serialized_start=1169 + _globals['_CLEARAUDIOBUFFERREQUEST']._serialized_end=1217 + _globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_start=1219 + _globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_end=1245 + _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_start=1247 + _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_end=1273 + _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_start=1275 + _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_end=1357 + _globals['_REMIXANDRESAMPLEREQUEST']._serialized_start=1360 + _globals['_REMIXANDRESAMPLEREQUEST']._serialized_end=1507 + _globals['_REMIXANDRESAMPLERESPONSE']._serialized_start=1509 + _globals['_REMIXANDRESAMPLERESPONSE']._serialized_end=1589 + _globals['_NEWSOXRESAMPLERREQUEST']._serialized_start=1592 + _globals['_NEWSOXRESAMPLERREQUEST']._serialized_end=1876 + _globals['_NEWSOXRESAMPLERRESPONSE']._serialized_start=1878 + _globals['_NEWSOXRESAMPLERRESPONSE']._serialized_end=1986 + _globals['_PUSHSOXRESAMPLERREQUEST']._serialized_start=1988 + _globals['_PUSHSOXRESAMPLERREQUEST']._serialized_end=2071 + _globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_start=2073 + _globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_end=2148 + _globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_start=2150 + _globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_end=2202 + _globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_start=2204 + _globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_end=2280 + _globals['_AUDIOFRAMEBUFFERINFO']._serialized_start=2282 + _globals['_AUDIOFRAMEBUFFERINFO']._serialized_end=2394 + _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_start=2396 + _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_end=2517 + _globals['_AUDIOSTREAMINFO']._serialized_start=2519 + _globals['_AUDIOSTREAMINFO']._serialized_end=2582 + _globals['_OWNEDAUDIOSTREAM']._serialized_start=2584 + _globals['_OWNEDAUDIOSTREAM']._serialized_end=2695 + _globals['_AUDIOSTREAMEVENT']._serialized_start=2698 + _globals['_AUDIOSTREAMEVENT']._serialized_end=2857 + _globals['_AUDIOFRAMERECEIVED']._serialized_start=2859 + _globals['_AUDIOFRAMERECEIVED']._serialized_end=2932 + _globals['_AUDIOSTREAMEOS']._serialized_start=2934 + _globals['_AUDIOSTREAMEOS']._serialized_end=2950 + _globals['_AUDIOSOURCEOPTIONS']._serialized_start=2952 + _globals['_AUDIOSOURCEOPTIONS']._serialized_end=3053 + _globals['_AUDIOSOURCEINFO']._serialized_start=3055 + _globals['_AUDIOSOURCEINFO']._serialized_end=3118 + _globals['_OWNEDAUDIOSOURCE']._serialized_start=3120 + _globals['_OWNEDAUDIOSOURCE']._serialized_end=3231 + _globals['_AUDIORESAMPLERINFO']._serialized_start=3233 + _globals['_AUDIORESAMPLERINFO']._serialized_end=3253 + _globals['_OWNEDAUDIORESAMPLER']._serialized_start=3255 + _globals['_OWNEDAUDIORESAMPLER']._serialized_end=3372 + _globals['_SOXRESAMPLERINFO']._serialized_start=3374 + _globals['_SOXRESAMPLERINFO']._serialized_end=3392 + _globals['_OWNEDSOXRESAMPLER']._serialized_start=3394 + _globals['_OWNEDSOXRESAMPLER']._serialized_end=3507 + _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_start=3509 + _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=3582 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=3584 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=3662 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi index 5b9b4921..de309e4d 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi @@ -150,13 +150,13 @@ class NewAudioStreamRequest(google.protobuf.message.Message): TYPE_FIELD_NUMBER: builtins.int SAMPLE_RATE_FIELD_NUMBER: builtins.int NUM_CHANNELS_FIELD_NUMBER: builtins.int - AUDIO_FILTER_HANDLE_FIELD_NUMBER: builtins.int + AUDIO_FILTER_MODULE_ID_FIELD_NUMBER: builtins.int AUDIO_FILTER_OPTIONS_FIELD_NUMBER: builtins.int track_handle: builtins.int type: global___AudioStreamType.ValueType sample_rate: builtins.int num_channels: builtins.int - audio_filter_handle: builtins.int + audio_filter_module_id: builtins.str audio_filter_options: builtins.str def __init__( self, @@ -165,11 +165,11 @@ class NewAudioStreamRequest(google.protobuf.message.Message): type: global___AudioStreamType.ValueType | None = ..., sample_rate: builtins.int | None = ..., num_channels: builtins.int | None = ..., - audio_filter_handle: builtins.int | None = ..., + audio_filter_module_id: builtins.str | None = ..., audio_filter_options: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["audio_filter_handle", b"audio_filter_handle", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "sample_rate", b"sample_rate", "track_handle", b"track_handle", "type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["audio_filter_handle", b"audio_filter_handle", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "sample_rate", b"sample_rate", "track_handle", b"track_handle", "type", b"type"]) -> None: ... + def HasField(self, field_name: typing.Literal["audio_filter_module_id", b"audio_filter_module_id", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "sample_rate", b"sample_rate", "track_handle", b"track_handle", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["audio_filter_module_id", b"audio_filter_module_id", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "sample_rate", b"sample_rate", "track_handle", b"track_handle", "type", b"type"]) -> None: ... global___NewAudioStreamRequest = NewAudioStreamRequest @@ -199,14 +199,14 @@ class AudioStreamFromParticipantRequest(google.protobuf.message.Message): TRACK_SOURCE_FIELD_NUMBER: builtins.int SAMPLE_RATE_FIELD_NUMBER: builtins.int NUM_CHANNELS_FIELD_NUMBER: builtins.int - AUDIO_FILTER_HANDLE_FIELD_NUMBER: builtins.int + AUDIO_FILTER_MODULE_ID_FIELD_NUMBER: builtins.int AUDIO_FILTER_OPTIONS_FIELD_NUMBER: builtins.int participant_handle: builtins.int type: global___AudioStreamType.ValueType track_source: track_pb2.TrackSource.ValueType sample_rate: builtins.int num_channels: builtins.int - audio_filter_handle: builtins.int + audio_filter_module_id: builtins.str audio_filter_options: builtins.str def __init__( self, @@ -216,11 +216,11 @@ class AudioStreamFromParticipantRequest(google.protobuf.message.Message): track_source: track_pb2.TrackSource.ValueType | None = ..., sample_rate: builtins.int | None = ..., num_channels: builtins.int | None = ..., - audio_filter_handle: builtins.int | None = ..., + audio_filter_module_id: builtins.str | None = ..., audio_filter_options: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["audio_filter_handle", b"audio_filter_handle", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "participant_handle", b"participant_handle", "sample_rate", b"sample_rate", "track_source", b"track_source", "type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["audio_filter_handle", b"audio_filter_handle", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "participant_handle", b"participant_handle", "sample_rate", b"sample_rate", "track_source", b"track_source", "type", b"type"]) -> None: ... + def HasField(self, field_name: typing.Literal["audio_filter_module_id", b"audio_filter_module_id", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "participant_handle", b"participant_handle", "sample_rate", b"sample_rate", "track_source", b"track_source", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["audio_filter_module_id", b"audio_filter_module_id", "audio_filter_options", b"audio_filter_options", "num_channels", b"num_channels", "participant_handle", b"participant_handle", "sample_rate", b"sample_rate", "track_source", b"track_source", "type", b"type"]) -> None: ... global___AudioStreamFromParticipantRequest = AudioStreamFromParticipantRequest diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index d1f492f5..6894b6be 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -30,7 +30,7 @@ from . import stats_pb2 as stats__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \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\"\xdc\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\x12\x1c\n\x14\x61udio_filter_handles\x18\x07 \x03(\x04\"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\"\xa9\x11\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\x12I\n\x16stream_header_received\x18\x1e \x01(\x0b\x32\'.livekit.proto.DataStreamHeaderReceivedH\x00\x12G\n\x15stream_chunk_received\x18\x1f \x01(\x0b\x32&.livekit.proto.DataStreamChunkReceivedH\x00\x12K\n\x17stream_trailer_received\x18 \x01(\x0b\x32(.livekit.proto.DataStreamTrailerReceivedH\x00\x12i\n\"data_channel_low_threshold_changed\x18! \x01(\x0b\x32;.livekit.proto.DataChannelBufferedAmountLowThresholdChangedH\x00\x42\t\n\x07message\"\x9a\x01\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\x12.\n&lossy_dc_buffered_amount_low_threshold\x18\x04 \x02(\x04\x12\x31\n)reliable_dc_buffered_amount_low_threshold\x18\x05 \x02(\x04\"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\"\x8e\x07\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 \x01(\x05\x12\x1a\n\x12reply_to_stream_id\x18\x03 \x01(\t\x12\x1b\n\x13\x61ttached_stream_ids\x18\x04 \x03(\t\x12\x11\n\tgenerated\x18\x05 \x01(\x08\x1a\x1a\n\nByteHeader\x12\x0c\n\x04name\x18\x01 \x02(\t\x1a\xeb\x02\n\x06Header\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\x11\n\tmime_type\x18\x03 \x02(\t\x12\r\n\x05topic\x18\x04 \x02(\t\x12\x14\n\x0ctotal_length\x18\x05 \x01(\x04\x12\x44\n\nattributes\x18\x06 \x03(\x0b\x32\x30.livekit.proto.DataStream.Header.AttributesEntry\x12;\n\x0btext_header\x18\x07 \x01(\x0b\x32$.livekit.proto.DataStream.TextHeaderH\x00\x12;\n\x0b\x62yte_header\x18\x08 \x01(\x0b\x32$.livekit.proto.DataStream.ByteHeaderH\x00\x1a\x31\n\x0f\x41ttributesEntry\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\x1a]\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\x0f\n\x07version\x18\x04 \x01(\x05\x12\n\n\x02iv\x18\x05 \x01(\x0c\x1a\xa6\x01\n\x07Trailer\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x0e\n\x06reason\x18\x02 \x02(\t\x12\x45\n\nattributes\x18\x03 \x03(\x0b\x32\x31.livekit.proto.DataStream.Trailer.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"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\"j\n\x18\x44\x61taStreamHeaderReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\"g\n\x17\x44\x61taStreamChunkReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\"m\n\x19\x44\x61taStreamTrailerReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\"\xa6\x01\n\x17SendStreamHeaderRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa3\x01\n\x16SendStreamChunkRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa9\x01\n\x18SendStreamTrailerRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\",\n\x18SendStreamHeaderResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"+\n\x17SendStreamChunkResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"-\n\x19SendStreamTrailerResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SendStreamHeaderCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\":\n\x17SendStreamChunkCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"<\n\x19SendStreamTrailerCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x93\x01\n/SetDataChannelBufferedAmountLowThresholdRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\tthreshold\x18\x02 \x02(\x04\x12+\n\x04kind\x18\x03 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\"2\n0SetDataChannelBufferedAmountLowThresholdResponse\"n\n,DataChannelBufferedAmountLowThresholdChanged\x12+\n\x04kind\x18\x01 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x11\n\tthreshold\x18\x02 \x02(\x04*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') +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\"9\n\x11\x41udioFilterModule\x12\x11\n\tmodule_id\x18\x01 \x02(\t\x12\x11\n\thandle_id\x18\x02 \x02(\x04\"\xfe\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\x12>\n\x14\x61udio_filter_handles\x18\x07 \x03(\x0b\x32 .livekit.proto.AudioFilterModule\"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\"\xa9\x11\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\x12I\n\x16stream_header_received\x18\x1e \x01(\x0b\x32\'.livekit.proto.DataStreamHeaderReceivedH\x00\x12G\n\x15stream_chunk_received\x18\x1f \x01(\x0b\x32&.livekit.proto.DataStreamChunkReceivedH\x00\x12K\n\x17stream_trailer_received\x18 \x01(\x0b\x32(.livekit.proto.DataStreamTrailerReceivedH\x00\x12i\n\"data_channel_low_threshold_changed\x18! \x01(\x0b\x32;.livekit.proto.DataChannelBufferedAmountLowThresholdChangedH\x00\x42\t\n\x07message\"\x9a\x01\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\x12.\n&lossy_dc_buffered_amount_low_threshold\x18\x04 \x02(\x04\x12\x31\n)reliable_dc_buffered_amount_low_threshold\x18\x05 \x02(\x04\"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\"\x8e\x07\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 \x01(\x05\x12\x1a\n\x12reply_to_stream_id\x18\x03 \x01(\t\x12\x1b\n\x13\x61ttached_stream_ids\x18\x04 \x03(\t\x12\x11\n\tgenerated\x18\x05 \x01(\x08\x1a\x1a\n\nByteHeader\x12\x0c\n\x04name\x18\x01 \x02(\t\x1a\xeb\x02\n\x06Header\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\x11\n\tmime_type\x18\x03 \x02(\t\x12\r\n\x05topic\x18\x04 \x02(\t\x12\x14\n\x0ctotal_length\x18\x05 \x01(\x04\x12\x44\n\nattributes\x18\x06 \x03(\x0b\x32\x30.livekit.proto.DataStream.Header.AttributesEntry\x12;\n\x0btext_header\x18\x07 \x01(\x0b\x32$.livekit.proto.DataStream.TextHeaderH\x00\x12;\n\x0b\x62yte_header\x18\x08 \x01(\x0b\x32$.livekit.proto.DataStream.ByteHeaderH\x00\x1a\x31\n\x0f\x41ttributesEntry\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\x1a]\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\x0f\n\x07version\x18\x04 \x01(\x05\x12\n\n\x02iv\x18\x05 \x01(\x0c\x1a\xa6\x01\n\x07Trailer\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x0e\n\x06reason\x18\x02 \x02(\t\x12\x45\n\nattributes\x18\x03 \x03(\x0b\x32\x31.livekit.proto.DataStream.Trailer.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"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\"j\n\x18\x44\x61taStreamHeaderReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\"g\n\x17\x44\x61taStreamChunkReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\"m\n\x19\x44\x61taStreamTrailerReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\"\xa6\x01\n\x17SendStreamHeaderRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa3\x01\n\x16SendStreamChunkRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa9\x01\n\x18SendStreamTrailerRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\",\n\x18SendStreamHeaderResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"+\n\x17SendStreamChunkResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"-\n\x19SendStreamTrailerResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SendStreamHeaderCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\":\n\x17SendStreamChunkCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"<\n\x19SendStreamTrailerCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x93\x01\n/SetDataChannelBufferedAmountLowThresholdRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\tthreshold\x18\x02 \x02(\x04\x12+\n\x04kind\x18\x03 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\"2\n0SetDataChannelBufferedAmountLowThresholdResponse\"n\n,DataChannelBufferedAmountLowThresholdChanged\x12+\n\x04kind\x18\x01 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x11\n\tthreshold\x18\x02 \x02(\x04*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) @@ -44,16 +44,16 @@ _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._loaded_options = None _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_ICETRANSPORTTYPE']._serialized_start=12018 - _globals['_ICETRANSPORTTYPE']._serialized_end=12098 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=12100 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=12167 - _globals['_CONNECTIONQUALITY']._serialized_start=12169 - _globals['_CONNECTIONQUALITY']._serialized_end=12265 - _globals['_CONNECTIONSTATE']._serialized_start=12267 - _globals['_CONNECTIONSTATE']._serialized_end=12350 - _globals['_DATAPACKETKIND']._serialized_start=12352 - _globals['_DATAPACKETKIND']._serialized_end=12403 + _globals['_ICETRANSPORTTYPE']._serialized_start=12111 + _globals['_ICETRANSPORTTYPE']._serialized_end=12191 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=12193 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=12260 + _globals['_CONNECTIONQUALITY']._serialized_start=12262 + _globals['_CONNECTIONQUALITY']._serialized_end=12358 + _globals['_CONNECTIONSTATE']._serialized_start=12360 + _globals['_CONNECTIONSTATE']._serialized_end=12443 + _globals['_DATAPACKETKIND']._serialized_start=12445 + _globals['_DATAPACKETKIND']._serialized_end=12496 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -150,130 +150,132 @@ _globals['_ICESERVER']._serialized_end=4134 _globals['_RTCCONFIG']._serialized_start=4137 _globals['_RTCCONFIG']._serialized_end=4333 - _globals['_ROOMOPTIONS']._serialized_start=4336 - _globals['_ROOMOPTIONS']._serialized_end=4556 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=4558 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=4677 - _globals['_BUFFERINFO']._serialized_start=4679 - _globals['_BUFFERINFO']._serialized_end=4727 - _globals['_OWNEDBUFFER']._serialized_start=4729 - _globals['_OWNEDBUFFER']._serialized_end=4830 - _globals['_ROOMEVENT']._serialized_start=4833 - _globals['_ROOMEVENT']._serialized_end=7050 - _globals['_ROOMINFO']._serialized_start=7053 - _globals['_ROOMINFO']._serialized_end=7207 - _globals['_OWNEDROOM']._serialized_start=7209 - _globals['_OWNEDROOM']._serialized_end=7306 - _globals['_PARTICIPANTCONNECTED']._serialized_start=7308 - _globals['_PARTICIPANTCONNECTED']._serialized_end=7377 - _globals['_PARTICIPANTDISCONNECTED']._serialized_start=7379 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=7434 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=7436 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=7476 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=7478 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=7526 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=7528 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=7569 - _globals['_TRACKPUBLISHED']._serialized_start=7571 - _globals['_TRACKPUBLISHED']._serialized_end=7676 - _globals['_TRACKUNPUBLISHED']._serialized_start=7678 - _globals['_TRACKUNPUBLISHED']._serialized_end=7751 - _globals['_TRACKSUBSCRIBED']._serialized_start=7753 - _globals['_TRACKSUBSCRIBED']._serialized_end=7842 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=7844 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=7912 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=7914 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=8003 - _globals['_TRACKMUTED']._serialized_start=8005 - _globals['_TRACKMUTED']._serialized_end=8066 - _globals['_TRACKUNMUTED']._serialized_start=8068 - _globals['_TRACKUNMUTED']._serialized_end=8131 - _globals['_E2EESTATECHANGED']._serialized_start=8133 - _globals['_E2EESTATECHANGED']._serialized_end=8228 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=8230 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=8285 - _globals['_ROOMMETADATACHANGED']._serialized_start=8287 - _globals['_ROOMMETADATACHANGED']._serialized_end=8326 - _globals['_ROOMSIDCHANGED']._serialized_start=8328 - _globals['_ROOMSIDCHANGED']._serialized_end=8357 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=8359 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=8435 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=8438 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=8610 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=8612 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=8680 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=8682 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=8789 - _globals['_USERPACKET']._serialized_start=8791 - _globals['_USERPACKET']._serialized_end=8860 - _globals['_CHATMESSAGE']._serialized_start=8862 - _globals['_CHATMESSAGE']._serialized_end=8983 - _globals['_CHATMESSAGERECEIVED']._serialized_start=8985 - _globals['_CHATMESSAGERECEIVED']._serialized_end=9081 - _globals['_SIPDTMF']._serialized_start=9083 - _globals['_SIPDTMF']._serialized_end=9121 - _globals['_DATAPACKETRECEIVED']._serialized_start=9124 - _globals['_DATAPACKETRECEIVED']._serialized_end=9315 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=9317 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=9444 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=9446 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=9517 - _globals['_CONNECTED']._serialized_start=9519 - _globals['_CONNECTED']._serialized_end=9530 - _globals['_DISCONNECTED']._serialized_start=9532 - _globals['_DISCONNECTED']._serialized_end=9595 - _globals['_RECONNECTING']._serialized_start=9597 - _globals['_RECONNECTING']._serialized_end=9611 - _globals['_RECONNECTED']._serialized_start=9613 - _globals['_RECONNECTED']._serialized_end=9626 - _globals['_ROOMEOS']._serialized_start=9628 - _globals['_ROOMEOS']._serialized_end=9637 - _globals['_DATASTREAM']._serialized_start=9640 - _globals['_DATASTREAM']._serialized_end=10550 - _globals['_DATASTREAM_TEXTHEADER']._serialized_start=9655 - _globals['_DATASTREAM_TEXTHEADER']._serialized_end=9825 - _globals['_DATASTREAM_BYTEHEADER']._serialized_start=9827 - _globals['_DATASTREAM_BYTEHEADER']._serialized_end=9853 - _globals['_DATASTREAM_HEADER']._serialized_start=9856 - _globals['_DATASTREAM_HEADER']._serialized_end=10219 - _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_start=10152 - _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_end=10201 - _globals['_DATASTREAM_CHUNK']._serialized_start=10221 - _globals['_DATASTREAM_CHUNK']._serialized_end=10314 - _globals['_DATASTREAM_TRAILER']._serialized_start=10317 - _globals['_DATASTREAM_TRAILER']._serialized_end=10483 - _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_start=10152 - _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_end=10201 - _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=10485 - _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=10550 - _globals['_DATASTREAMHEADERRECEIVED']._serialized_start=10552 - _globals['_DATASTREAMHEADERRECEIVED']._serialized_end=10658 - _globals['_DATASTREAMCHUNKRECEIVED']._serialized_start=10660 - _globals['_DATASTREAMCHUNKRECEIVED']._serialized_end=10763 - _globals['_DATASTREAMTRAILERRECEIVED']._serialized_start=10765 - _globals['_DATASTREAMTRAILERRECEIVED']._serialized_end=10874 - _globals['_SENDSTREAMHEADERREQUEST']._serialized_start=10877 - _globals['_SENDSTREAMHEADERREQUEST']._serialized_end=11043 - _globals['_SENDSTREAMCHUNKREQUEST']._serialized_start=11046 - _globals['_SENDSTREAMCHUNKREQUEST']._serialized_end=11209 - _globals['_SENDSTREAMTRAILERREQUEST']._serialized_start=11212 - _globals['_SENDSTREAMTRAILERREQUEST']._serialized_end=11381 - _globals['_SENDSTREAMHEADERRESPONSE']._serialized_start=11383 - _globals['_SENDSTREAMHEADERRESPONSE']._serialized_end=11427 - _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_start=11429 - _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_end=11472 - _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_start=11474 - _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_end=11519 - _globals['_SENDSTREAMHEADERCALLBACK']._serialized_start=11521 - _globals['_SENDSTREAMHEADERCALLBACK']._serialized_end=11580 - _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_start=11582 - _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_end=11640 - _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_start=11642 - _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_end=11702 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_start=11705 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_end=11852 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_start=11854 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_end=11904 - _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_start=11906 - _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_end=12016 + _globals['_AUDIOFILTERMODULE']._serialized_start=4335 + _globals['_AUDIOFILTERMODULE']._serialized_end=4392 + _globals['_ROOMOPTIONS']._serialized_start=4395 + _globals['_ROOMOPTIONS']._serialized_end=4649 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=4651 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=4770 + _globals['_BUFFERINFO']._serialized_start=4772 + _globals['_BUFFERINFO']._serialized_end=4820 + _globals['_OWNEDBUFFER']._serialized_start=4822 + _globals['_OWNEDBUFFER']._serialized_end=4923 + _globals['_ROOMEVENT']._serialized_start=4926 + _globals['_ROOMEVENT']._serialized_end=7143 + _globals['_ROOMINFO']._serialized_start=7146 + _globals['_ROOMINFO']._serialized_end=7300 + _globals['_OWNEDROOM']._serialized_start=7302 + _globals['_OWNEDROOM']._serialized_end=7399 + _globals['_PARTICIPANTCONNECTED']._serialized_start=7401 + _globals['_PARTICIPANTCONNECTED']._serialized_end=7470 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=7472 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=7527 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=7529 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=7569 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=7571 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=7619 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=7621 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=7662 + _globals['_TRACKPUBLISHED']._serialized_start=7664 + _globals['_TRACKPUBLISHED']._serialized_end=7769 + _globals['_TRACKUNPUBLISHED']._serialized_start=7771 + _globals['_TRACKUNPUBLISHED']._serialized_end=7844 + _globals['_TRACKSUBSCRIBED']._serialized_start=7846 + _globals['_TRACKSUBSCRIBED']._serialized_end=7935 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=7937 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=8005 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=8007 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=8096 + _globals['_TRACKMUTED']._serialized_start=8098 + _globals['_TRACKMUTED']._serialized_end=8159 + _globals['_TRACKUNMUTED']._serialized_start=8161 + _globals['_TRACKUNMUTED']._serialized_end=8224 + _globals['_E2EESTATECHANGED']._serialized_start=8226 + _globals['_E2EESTATECHANGED']._serialized_end=8321 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=8323 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=8378 + _globals['_ROOMMETADATACHANGED']._serialized_start=8380 + _globals['_ROOMMETADATACHANGED']._serialized_end=8419 + _globals['_ROOMSIDCHANGED']._serialized_start=8421 + _globals['_ROOMSIDCHANGED']._serialized_end=8450 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=8452 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=8528 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=8531 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=8703 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=8705 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=8773 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=8775 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=8882 + _globals['_USERPACKET']._serialized_start=8884 + _globals['_USERPACKET']._serialized_end=8953 + _globals['_CHATMESSAGE']._serialized_start=8955 + _globals['_CHATMESSAGE']._serialized_end=9076 + _globals['_CHATMESSAGERECEIVED']._serialized_start=9078 + _globals['_CHATMESSAGERECEIVED']._serialized_end=9174 + _globals['_SIPDTMF']._serialized_start=9176 + _globals['_SIPDTMF']._serialized_end=9214 + _globals['_DATAPACKETRECEIVED']._serialized_start=9217 + _globals['_DATAPACKETRECEIVED']._serialized_end=9408 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=9410 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=9537 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=9539 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=9610 + _globals['_CONNECTED']._serialized_start=9612 + _globals['_CONNECTED']._serialized_end=9623 + _globals['_DISCONNECTED']._serialized_start=9625 + _globals['_DISCONNECTED']._serialized_end=9688 + _globals['_RECONNECTING']._serialized_start=9690 + _globals['_RECONNECTING']._serialized_end=9704 + _globals['_RECONNECTED']._serialized_start=9706 + _globals['_RECONNECTED']._serialized_end=9719 + _globals['_ROOMEOS']._serialized_start=9721 + _globals['_ROOMEOS']._serialized_end=9730 + _globals['_DATASTREAM']._serialized_start=9733 + _globals['_DATASTREAM']._serialized_end=10643 + _globals['_DATASTREAM_TEXTHEADER']._serialized_start=9748 + _globals['_DATASTREAM_TEXTHEADER']._serialized_end=9918 + _globals['_DATASTREAM_BYTEHEADER']._serialized_start=9920 + _globals['_DATASTREAM_BYTEHEADER']._serialized_end=9946 + _globals['_DATASTREAM_HEADER']._serialized_start=9949 + _globals['_DATASTREAM_HEADER']._serialized_end=10312 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_start=10245 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_end=10294 + _globals['_DATASTREAM_CHUNK']._serialized_start=10314 + _globals['_DATASTREAM_CHUNK']._serialized_end=10407 + _globals['_DATASTREAM_TRAILER']._serialized_start=10410 + _globals['_DATASTREAM_TRAILER']._serialized_end=10576 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_start=10245 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_end=10294 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=10578 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=10643 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_start=10645 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_end=10751 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_start=10753 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_end=10856 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_start=10858 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_end=10967 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_start=10970 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_end=11136 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_start=11139 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_end=11302 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_start=11305 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_end=11474 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_start=11476 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_end=11520 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_start=11522 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_end=11565 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_start=11567 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_end=11612 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_start=11614 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_end=11673 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_start=11675 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_end=11733 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_start=11735 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_end=11795 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_start=11798 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_end=11945 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_start=11947 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_end=11997 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_start=11999 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_end=12109 # @@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 40e25ffc..15fb9e3f 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -1125,6 +1125,26 @@ class RtcConfig(google.protobuf.message.Message): global___RtcConfig = RtcConfig +@typing.final +class AudioFilterModule(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + MODULE_ID_FIELD_NUMBER: builtins.int + HANDLE_ID_FIELD_NUMBER: builtins.int + module_id: builtins.str + """unique identifier for audio filter""" + handle_id: builtins.int + def __init__( + self, + *, + module_id: builtins.str | None = ..., + handle_id: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["handle_id", b"handle_id", "module_id", b"module_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["handle_id", b"handle_id", "module_id", b"module_id"]) -> None: ... + +global___AudioFilterModule = AudioFilterModule + @typing.final class RoomOptions(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -1147,7 +1167,7 @@ class RoomOptions(google.protobuf.message.Message): """allow to setup a custom RtcConfiguration""" @property - def audio_filter_handles(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def audio_filter_handles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AudioFilterModule]: ... def __init__( self, *, @@ -1157,7 +1177,7 @@ class RoomOptions(google.protobuf.message.Message): e2ee: e2ee_pb2.E2eeOptions | None = ..., rtc_config: global___RtcConfig | None = ..., join_retries: builtins.int | None = ..., - audio_filter_handles: collections.abc.Iterable[builtins.int] | None = ..., + audio_filter_handles: collections.abc.Iterable[global___AudioFilterModule] | None = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "auto_subscribe", b"auto_subscribe", "dynacast", b"dynacast", "e2ee", b"e2ee", "join_retries", b"join_retries", "rtc_config", b"rtc_config"]) -> builtins.bool: ... def ClearField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "audio_filter_handles", b"audio_filter_handles", "auto_subscribe", b"auto_subscribe", "dynacast", b"dynacast", "e2ee", b"e2ee", "join_retries", b"join_retries", "rtc_config", b"rtc_config"]) -> None: ... diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index ae64ab0b..8fef4df0 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit ae64ab0bff52de78fa182d8c42748519ab834f2b +Subproject commit 8fef4df0d5b86997b9c6931e8379c1927ac203af From 53363889bda9e8d915d38e26e0ec6046e1f743f3 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 12 Feb 2025 11:16:09 -0800 Subject: [PATCH 18/36] new interface --- livekit-rtc/livekit/rtc/audio_filter.py | 10 ++---- livekit-rtc/livekit/rtc/audio_stream.py | 46 ++++++++++--------------- livekit-rtc/livekit/rtc/room.py | 35 ++++++++++--------- livekit-rtc/livekit/rtc/track.py | 6 ---- 4 files changed, 39 insertions(+), 58 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index 52609616..4e2b8b19 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -1,5 +1,5 @@ import json -from typing import Optional +from typing import Optional, List from ._ffi_client import FfiClient, FfiHandle from ._proto import ffi_pb2 as proto_ffi @@ -7,7 +7,7 @@ class AudioFilter: def __init__( - self, path: str, url: str, token: str, dependencies: Optional[list[str]] = None + self, path: str, dependencies: Optional[List[str]] = None ) -> None: self._path = path @@ -16,12 +16,6 @@ def __init__( req.load_audio_filter_plugin.dependencies[:] = ( dependencies if dependencies is not None else [] ) - req.load_audio_filter_plugin.options = json.dumps( - { - "url": url, - "token": token, - } - ) resp = FfiClient.instance.request(req) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index 0f82d1ca..da72f8dd 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -17,7 +17,7 @@ import asyncio import json from dataclasses import dataclass -from typing import Any, AsyncIterator, Optional +from typing import Any, AsyncIterator, Optional, Tuple from ._ffi_client import FfiClient, FfiHandle from ._proto import audio_frame_pb2 as proto_audio_frame @@ -55,8 +55,7 @@ def __init__( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - enable_filter: Any = None, - filter_options: dict[str, Any] | None = None, + audio_filter: Optional[Tuple[str, dict[str, any]]] = None, **kwargs, ) -> None: """Initialize an `AudioStream` instance. @@ -92,22 +91,11 @@ def __init__( self._ffi_queue = FfiClient.instance.queue.subscribe(self._loop) self._queue: RingQueue[AudioFrameEvent | None] = RingQueue(capacity) - self._audio_filter_handle = None + self._audio_filter_module = None self._audio_filter_options = None - if enable_filter is not None: - if isinstance(track, RemoteAudioTrack): - room = track.room() - if room is None: - raise Exception("Unexpected track") - handle = room._filter_handle(enable_filter) - if handle is None: - raise Exception("audio filter is not enabled for the room") - self._audio_filter_handle = handle - self._audio_filter_options = enable_filter.filter_options( - filter_options - ) - else: - raise TypeError("track is not a RemoteAudioTrack") + if audio_filter is not None: + self._audio_filter_module = audio_filter[0] + self._audio_filter_options = audio_filter[1] self._task = self._loop.create_task(self._run()) self._task.add_done_callback(task_done_logger) @@ -131,8 +119,7 @@ def from_participant( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - enable_filter: Any = None, - filter_options: dict[str, Any] | None = None, + audio_filter: Optional[Tuple[str, dict[str, any]]] = None, ) -> AudioStream: """Create an `AudioStream` from a participant's audio track. @@ -165,8 +152,7 @@ def from_participant( track=None, # type: ignore sample_rate=sample_rate, num_channels=num_channels, - enable_filter=enable_filter, - filter_options=filter_options, + audio_filter=audio_filter, ) @classmethod @@ -178,8 +164,7 @@ def from_track( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - enable_filter: Any = None, - filter_options: dict[str, Any] | None = None, + audio_filter: Optional[Tuple[str, dict[str, any]]] = None, ) -> AudioStream: """Create an `AudioStream` from an existing audio track. @@ -208,8 +193,7 @@ def from_track( capacity=capacity, sample_rate=sample_rate, num_channels=num_channels, - enable_filter=enable_filter, - filter_options=filter_options, + audio_filter=audio_filter, ) def __del__(self) -> None: @@ -223,8 +207,8 @@ def _create_owned_stream(self) -> Any: new_audio_stream.sample_rate = self._sample_rate new_audio_stream.num_channels = self._num_channels new_audio_stream.type = proto_audio_frame.AudioStreamType.AUDIO_STREAM_NATIVE - if self._audio_filter_handle is not None: - new_audio_stream.audio_filter_handle = self._audio_filter_handle + if self._audio_filter_module is not None: + new_audio_stream.audio_filter_module_id = self._audio_filter_module if self._audio_filter_options is not None: new_audio_stream.audio_filter_options = json.dumps( self._audio_filter_options @@ -246,6 +230,12 @@ def _create_owned_stream_from_participant( proto_audio_frame.AudioStreamType.AUDIO_STREAM_NATIVE ) audio_stream_from_participant.track_source = track_source + if self._audio_filter_module is not None: + audio_stream_from_participant.audio_filter_module_id = self._audio_filter_module + if self._audio_filter_options is not None: + audio_stream_from_participant.audio_filter_options = json.dumps( + self._audio_filter_options + ) resp = FfiClient.instance.request(req) return resp.audio_stream_from_participant.stream diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 42b0d23f..b26f5f0e 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -98,7 +98,8 @@ class RoomOptions: """Options for end-to-end encryption.""" rtc_config: RtcConfiguration | None = None """WebRTC-related configuration.""" - + audio_filters: List[ModuleType] | None = None + """Audio filters""" @dataclass class DataPacket: @@ -131,7 +132,6 @@ class Room(EventEmitter[EventTypes]): def __init__( self, loop: Optional[asyncio.AbstractEventLoop] = None, - filters: Optional[List[Any]] = None, ) -> None: """Initializes a new Room instance. @@ -146,13 +146,12 @@ def __init__( self._info = proto_room.RoomInfo() self._rpc_invocation_tasks: set[asyncio.Task] = set() self._data_stream_tasks: set[asyncio.Task] = set() + self._filter_instances: Dict[ModuleType, AudioFilter] = {} self._remote_participants: Dict[str, RemoteParticipant] = {} self._connection_state = ConnectionState.CONN_DISCONNECTED self._first_sid_future = asyncio.Future[str]() self._local_participant: LocalParticipant | None = None - self._filters = filters if filters is not None else [] - self._filter_instances: Dict[ModuleType, AudioFilter] = {} self._text_stream_readers: Dict[str, TextStreamReader] = {} self._byte_stream_readers: Dict[str, ByteStreamReader] = {} @@ -379,17 +378,22 @@ def on_participant_connected(participant): options.rtc_config.ice_servers ) - for f in self._filters: - if hasattr(f, "dependencies_path"): - deps = f.dependencies_path() or [] - else: - deps = [] - self._filter_instances[f] = AudioFilter( - path=f.plugin_path(), - url=url, - token=token, - dependencies=deps, - ) + if options.audio_filters: + for module in options.audio_filters: + if hasattr(module, "dependencies_path"): + deps = module.dependencies_path() or [] + else: + deps = [] + + audio_filter = AudioFilter( + path=module.plugin_path(), + dependencies=deps, + ) + self._filter_instances[module] = audio_filter + req.connect.options.audio_filter_handles.append(proto_room.AudioFilterModule( + module_id=str(id(module)), + handle_id=audio_filter.handle(), + )) # subscribe before connecting so we don't miss any events self._ffi_queue = FfiClient.instance.queue.subscribe(self._loop) @@ -577,7 +581,6 @@ def _on_room_event(self, event: proto_room.RoomEvent): ) elif track_info.kind == TrackKind.KIND_AUDIO: remote_audio_track = RemoteAudioTrack(owned_track_info) - remote_audio_track._set_room(self) # set room ref for audio filter rpublication.track = remote_audio_track self.emit( "track_subscribed", remote_audio_track, rpublication, rparticipant diff --git a/livekit-rtc/livekit/rtc/track.py b/livekit-rtc/livekit/rtc/track.py index a064ac0b..3c61ad93 100644 --- a/livekit-rtc/livekit/rtc/track.py +++ b/livekit-rtc/livekit/rtc/track.py @@ -137,12 +137,6 @@ def __init__(self, info: proto_track.OwnedTrack): def __repr__(self) -> str: return f"rtc.RemoteAudioTrack(sid={self.sid}, name={self.name})" - def room(self) -> "Room | None": - return self._room - - def _set_room(self, room: "Room"): - self._room = room - class RemoteVideoTrack(Track): def __init__(self, info: proto_track.OwnedTrack): From 637389dd30f24500ef32d277e749b2edb03c260d Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 12 Feb 2025 11:17:10 -0800 Subject: [PATCH 19/36] ruff --- livekit-rtc/livekit/rtc/audio_filter.py | 4 +--- livekit-rtc/livekit/rtc/audio_stream.py | 4 +++- livekit-rtc/livekit/rtc/room.py | 11 +++++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index 4e2b8b19..c35c369a 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -6,9 +6,7 @@ class AudioFilter: - def __init__( - self, path: str, dependencies: Optional[List[str]] = None - ) -> None: + def __init__(self, path: str, dependencies: Optional[List[str]] = None) -> None: self._path = path req = proto_ffi.FfiRequest() diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index da72f8dd..ed0873da 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -231,7 +231,9 @@ def _create_owned_stream_from_participant( ) audio_stream_from_participant.track_source = track_source if self._audio_filter_module is not None: - audio_stream_from_participant.audio_filter_module_id = self._audio_filter_module + audio_stream_from_participant.audio_filter_module_id = ( + self._audio_filter_module + ) if self._audio_filter_options is not None: audio_stream_from_participant.audio_filter_options = json.dumps( self._audio_filter_options diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index b26f5f0e..1d3cd9b1 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -101,6 +101,7 @@ class RoomOptions: audio_filters: List[ModuleType] | None = None """Audio filters""" + @dataclass class DataPacket: data: bytes @@ -390,10 +391,12 @@ def on_participant_connected(participant): dependencies=deps, ) self._filter_instances[module] = audio_filter - req.connect.options.audio_filter_handles.append(proto_room.AudioFilterModule( - module_id=str(id(module)), - handle_id=audio_filter.handle(), - )) + req.connect.options.audio_filter_handles.append( + proto_room.AudioFilterModule( + module_id=str(id(module)), + handle_id=audio_filter.handle(), + ) + ) # subscribe before connecting so we don't miss any events self._ffi_queue = FfiClient.instance.queue.subscribe(self._loop) From 792bb9030a1fd0cd949229278b2bc2fcb56e9b77 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 19:17:44 +0000 Subject: [PATCH 20/36] generated protobuf --- livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/ffi_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/handle_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/participant_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/rpc_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/stats_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/track_pb2.py | 12 +----------- .../livekit/rtc/_proto/track_publication_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py | 12 +----------- 11 files changed, 11 insertions(+), 121 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index 3cd12ad5..f2639e15 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: audio_frame.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'audio_frame.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py index 3d5d637a..482deb8a 100644 --- a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: e2ee.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'e2ee.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index 3eb153cc..96700e02 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: ffi.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'ffi.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py index 2c19a638..98d253b4 100644 --- a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: handle.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'handle.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py index 88eff7e4..b4425bd1 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: participant.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'participant.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index 6894b6be..2af082d4 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: room.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'room.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py index 8742ff25..1b6302cd 100644 --- a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: rpc.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'rpc.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py index 5d980d06..2cbdb1cd 100644 --- a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: stats.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'stats.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_pb2.py index 43988a1c..5e3d1691 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: track.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'track.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py index b58568d5..22a19081 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: track_publication.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'track_publication.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py index 5bf179d6..bcbd99e9 100644 --- a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: video_frame.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'video_frame.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() From 1b4c3a9fc7ba54babbacf5f569d237857f9a801d Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 19 Feb 2025 12:44:38 -0800 Subject: [PATCH 21/36] update rust-sdk --- livekit-rtc/rust-sdks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index 8fef4df0..db5709e9 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit 8fef4df0d5b86997b9c6931e8379c1927ac203af +Subproject commit db5709e9f8a8d3ce7be6a70cb66d067e06ac039b From 1ddc73a665e25d0cf71a39a577cd29e96ee06c61 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 19 Feb 2025 13:09:22 -0800 Subject: [PATCH 22/36] fix types --- livekit-rtc/livekit/rtc/audio_stream.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index ed0873da..1f390df0 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -55,7 +55,7 @@ def __init__( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - audio_filter: Optional[Tuple[str, dict[str, any]]] = None, + audio_filter: Optional[Tuple[str, dict[str, Any]]] = None, **kwargs, ) -> None: """Initialize an `AudioStream` instance. @@ -119,7 +119,7 @@ def from_participant( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - audio_filter: Optional[Tuple[str, dict[str, any]]] = None, + audio_filter: Optional[Tuple[str, dict[str, Any]]] = None, ) -> AudioStream: """Create an `AudioStream` from a participant's audio track. @@ -164,7 +164,7 @@ def from_track( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - audio_filter: Optional[Tuple[str, dict[str, any]]] = None, + audio_filter: Optional[Tuple[str, dict[str, Any]]] = None, ) -> AudioStream: """Create an `AudioStream` from an existing audio track. From b1c1671404967f366a120f4d0b42a6cd52cfc362 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 19 Feb 2025 13:14:40 -0800 Subject: [PATCH 23/36] fix ruff checks --- livekit-rtc/livekit/rtc/audio_filter.py | 1 - livekit-rtc/livekit/rtc/room.py | 2 +- livekit-rtc/livekit/rtc/track.py | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index c35c369a..b2c9ec60 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -1,4 +1,3 @@ -import json from typing import Optional, List from ._ffi_client import FfiClient, FfiHandle diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 1d3cd9b1..fd79d813 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -17,7 +17,7 @@ import ctypes import logging from dataclasses import dataclass, field -from typing import Callable, Dict, Literal, Optional, cast, Mapping, List, Any +from typing import Callable, Dict, Literal, Optional, cast, Mapping, List from types import ModuleType from .event_emitter import EventEmitter diff --git a/livekit-rtc/livekit/rtc/track.py b/livekit-rtc/livekit/rtc/track.py index 3c61ad93..8a6fe692 100644 --- a/livekit-rtc/livekit/rtc/track.py +++ b/livekit-rtc/livekit/rtc/track.py @@ -21,7 +21,6 @@ if TYPE_CHECKING: from .audio_source import AudioSource from .video_source import VideoSource - from .room import Room class Track: From cc1c67821a0bc5f826205e70343aa06d2b4acebf Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 19 Feb 2025 13:15:48 -0800 Subject: [PATCH 24/36] fix this too --- livekit-rtc/livekit/rtc/audio_stream.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index 1f390df0..06f248d0 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -26,7 +26,7 @@ from ._utils import RingQueue, task_done_logger from .audio_frame import AudioFrame from .participant import Participant -from .track import Track, RemoteAudioTrack +from .track import Track @dataclass From e665bca897f77af5e99a5096f0dbc2bc5cebcac6 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 24 Feb 2025 15:10:05 -0800 Subject: [PATCH 25/36] update rust-sdk --- livekit-rtc/rust-sdks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index db5709e9..8799552d 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit db5709e9f8a8d3ce7be6a70cb66d067e06ac039b +Subproject commit 8799552db614a7ef44f6468956d82a2c768504f1 From 32a784f073649548ee7c0b5f77fc3b1306796e03 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 24 Feb 2025 15:37:45 -0800 Subject: [PATCH 26/36] remove audio filter related parameters from room.connect --- .../livekit/rtc/_proto/audio_frame_pb2.py | 40 ++- .../livekit/rtc/_proto/audio_frame_pb2.pyi | 20 +- livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/ffi_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/handle_pb2.py | 12 +- .../livekit/rtc/_proto/participant_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 284 +++++++++--------- livekit-rtc/livekit/rtc/_proto/room_pb2.pyi | 6 +- livekit-rtc/livekit/rtc/_proto/rpc_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/stats_pb2.py | 12 +- livekit-rtc/livekit/rtc/_proto/track_pb2.py | 12 +- .../rtc/_proto/track_publication_pb2.py | 12 +- .../livekit/rtc/_proto/video_frame_pb2.py | 12 +- livekit-rtc/livekit/rtc/audio_filter.py | 7 +- livekit-rtc/livekit/rtc/room.py | 19 -- 15 files changed, 288 insertions(+), 196 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index f2639e15..578b51d0 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: audio_frame.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'audio_frame.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -16,7 +26,7 @@ from . import track_pb2 as track__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc4\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1e\n\x16\x61udio_filter_module_id\x18\x05 \x01(\t\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x88\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1e\n\x16\x61udio_filter_module_id\x18\x07 \x01(\t\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"I\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\x12\x14\n\x0c\x64\x65pendencies\x18\x02 \x03(\t\"N\n\x1dLoadAudioFilterPluginResponse\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc4\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1e\n\x16\x61udio_filter_module_id\x18\x05 \x01(\t\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x88\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1e\n\x16\x61udio_filter_module_id\x18\x07 \x01(\t\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"\\\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\x12\x14\n\x0c\x64\x65pendencies\x18\x02 \x03(\t\x12\x11\n\tmodule_id\x18\x03 \x02(\t\".\n\x1dLoadAudioFilterPluginResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -24,16 +34,16 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3664 - _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3738 - _globals['_SOXQUALITYRECIPE']._serialized_start=3741 - _globals['_SOXQUALITYRECIPE']._serialized_end=3880 - _globals['_SOXFLAGBITS']._serialized_start=3883 - _globals['_SOXFLAGBITS']._serialized_end=4034 - _globals['_AUDIOSTREAMTYPE']._serialized_start=4036 - _globals['_AUDIOSTREAMTYPE']._serialized_end=4101 - _globals['_AUDIOSOURCETYPE']._serialized_start=4103 - _globals['_AUDIOSOURCETYPE']._serialized_end=4145 + _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3651 + _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3725 + _globals['_SOXQUALITYRECIPE']._serialized_start=3728 + _globals['_SOXQUALITYRECIPE']._serialized_end=3867 + _globals['_SOXFLAGBITS']._serialized_start=3870 + _globals['_SOXFLAGBITS']._serialized_end=4021 + _globals['_AUDIOSTREAMTYPE']._serialized_start=4023 + _globals['_AUDIOSTREAMTYPE']._serialized_end=4088 + _globals['_AUDIOSOURCETYPE']._serialized_start=4090 + _globals['_AUDIOSOURCETYPE']._serialized_end=4132 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_start=64 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=260 _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=262 @@ -105,7 +115,7 @@ _globals['_OWNEDSOXRESAMPLER']._serialized_start=3394 _globals['_OWNEDSOXRESAMPLER']._serialized_end=3507 _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_start=3509 - _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=3582 - _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=3584 - _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=3662 + _globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=3601 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=3603 + _globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=3649 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi index de309e4d..98dfaeed 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi @@ -157,6 +157,7 @@ class NewAudioStreamRequest(google.protobuf.message.Message): sample_rate: builtins.int num_channels: builtins.int audio_filter_module_id: builtins.str + """Unique identifier passed in LoadAudioFilterPluginRequest""" audio_filter_options: builtins.str def __init__( self, @@ -874,8 +875,11 @@ class LoadAudioFilterPluginRequest(google.protobuf.message.Message): PLUGIN_PATH_FIELD_NUMBER: builtins.int DEPENDENCIES_FIELD_NUMBER: builtins.int + MODULE_ID_FIELD_NUMBER: builtins.int plugin_path: builtins.str """path for ffi audio filter plugin""" + module_id: builtins.str + """Unique identifier of the plugin""" @property def dependencies(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """Optional: paths for dependency dylibs""" @@ -885,9 +889,10 @@ class LoadAudioFilterPluginRequest(google.protobuf.message.Message): *, plugin_path: builtins.str | None = ..., dependencies: collections.abc.Iterable[builtins.str] | None = ..., + module_id: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["plugin_path", b"plugin_path"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["dependencies", b"dependencies", "plugin_path", b"plugin_path"]) -> None: ... + def HasField(self, field_name: typing.Literal["module_id", b"module_id", "plugin_path", b"plugin_path"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["dependencies", b"dependencies", "module_id", b"module_id", "plugin_path", b"plugin_path"]) -> None: ... global___LoadAudioFilterPluginRequest = LoadAudioFilterPluginRequest @@ -895,15 +900,14 @@ global___LoadAudioFilterPluginRequest = LoadAudioFilterPluginRequest class LoadAudioFilterPluginResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - HANDLE_FIELD_NUMBER: builtins.int - @property - def handle(self) -> handle_pb2.FfiOwnedHandle: ... + ERROR_FIELD_NUMBER: builtins.int + error: builtins.str def __init__( self, *, - handle: handle_pb2.FfiOwnedHandle | None = ..., + error: builtins.str | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["handle", b"handle"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["handle", b"handle"]) -> None: ... + def HasField(self, field_name: typing.Literal["error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["error", b"error"]) -> None: ... global___LoadAudioFilterPluginResponse = LoadAudioFilterPluginResponse diff --git a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py index 482deb8a..3d5d637a 100644 --- a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: e2ee.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'e2ee.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index 96700e02..3eb153cc 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: ffi.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'ffi.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py index 98d253b4..2c19a638 100644 --- a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: handle.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'handle.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py index b4425bd1..88eff7e4 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: participant.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'participant.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index 2af082d4..36b95c1d 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: room.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'room.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -20,7 +30,7 @@ from . import stats_pb2 as stats__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \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\"9\n\x11\x41udioFilterModule\x12\x11\n\tmodule_id\x18\x01 \x02(\t\x12\x11\n\thandle_id\x18\x02 \x02(\x04\"\xfe\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\x12>\n\x14\x61udio_filter_handles\x18\x07 \x03(\x0b\x32 .livekit.proto.AudioFilterModule\"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\"\xa9\x11\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\x12I\n\x16stream_header_received\x18\x1e \x01(\x0b\x32\'.livekit.proto.DataStreamHeaderReceivedH\x00\x12G\n\x15stream_chunk_received\x18\x1f \x01(\x0b\x32&.livekit.proto.DataStreamChunkReceivedH\x00\x12K\n\x17stream_trailer_received\x18 \x01(\x0b\x32(.livekit.proto.DataStreamTrailerReceivedH\x00\x12i\n\"data_channel_low_threshold_changed\x18! \x01(\x0b\x32;.livekit.proto.DataChannelBufferedAmountLowThresholdChangedH\x00\x42\t\n\x07message\"\x9a\x01\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\x12.\n&lossy_dc_buffered_amount_low_threshold\x18\x04 \x02(\x04\x12\x31\n)reliable_dc_buffered_amount_low_threshold\x18\x05 \x02(\x04\"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\"\x8e\x07\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 \x01(\x05\x12\x1a\n\x12reply_to_stream_id\x18\x03 \x01(\t\x12\x1b\n\x13\x61ttached_stream_ids\x18\x04 \x03(\t\x12\x11\n\tgenerated\x18\x05 \x01(\x08\x1a\x1a\n\nByteHeader\x12\x0c\n\x04name\x18\x01 \x02(\t\x1a\xeb\x02\n\x06Header\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\x11\n\tmime_type\x18\x03 \x02(\t\x12\r\n\x05topic\x18\x04 \x02(\t\x12\x14\n\x0ctotal_length\x18\x05 \x01(\x04\x12\x44\n\nattributes\x18\x06 \x03(\x0b\x32\x30.livekit.proto.DataStream.Header.AttributesEntry\x12;\n\x0btext_header\x18\x07 \x01(\x0b\x32$.livekit.proto.DataStream.TextHeaderH\x00\x12;\n\x0b\x62yte_header\x18\x08 \x01(\x0b\x32$.livekit.proto.DataStream.ByteHeaderH\x00\x1a\x31\n\x0f\x41ttributesEntry\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\x1a]\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\x0f\n\x07version\x18\x04 \x01(\x05\x12\n\n\x02iv\x18\x05 \x01(\x0c\x1a\xa6\x01\n\x07Trailer\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x0e\n\x06reason\x18\x02 \x02(\t\x12\x45\n\nattributes\x18\x03 \x03(\x0b\x32\x31.livekit.proto.DataStream.Trailer.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"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\"j\n\x18\x44\x61taStreamHeaderReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\"g\n\x17\x44\x61taStreamChunkReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\"m\n\x19\x44\x61taStreamTrailerReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\"\xa6\x01\n\x17SendStreamHeaderRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa3\x01\n\x16SendStreamChunkRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa9\x01\n\x18SendStreamTrailerRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\",\n\x18SendStreamHeaderResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"+\n\x17SendStreamChunkResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"-\n\x19SendStreamTrailerResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SendStreamHeaderCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\":\n\x17SendStreamChunkCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"<\n\x19SendStreamTrailerCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x93\x01\n/SetDataChannelBufferedAmountLowThresholdRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\tthreshold\x18\x02 \x02(\x04\x12+\n\x04kind\x18\x03 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\"2\n0SetDataChannelBufferedAmountLowThresholdResponse\"n\n,DataChannelBufferedAmountLowThresholdChanged\x12+\n\x04kind\x18\x01 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x11\n\tthreshold\x18\x02 \x02(\x04*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') +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\"9\n\x11\x41udioFilterModule\x12\x11\n\tmodule_id\x18\x01 \x02(\t\x12\x11\n\thandle_id\x18\x02 \x02(\x04\"\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\"\xa9\x11\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\x12I\n\x16stream_header_received\x18\x1e \x01(\x0b\x32\'.livekit.proto.DataStreamHeaderReceivedH\x00\x12G\n\x15stream_chunk_received\x18\x1f \x01(\x0b\x32&.livekit.proto.DataStreamChunkReceivedH\x00\x12K\n\x17stream_trailer_received\x18 \x01(\x0b\x32(.livekit.proto.DataStreamTrailerReceivedH\x00\x12i\n\"data_channel_low_threshold_changed\x18! \x01(\x0b\x32;.livekit.proto.DataChannelBufferedAmountLowThresholdChangedH\x00\x42\t\n\x07message\"\x9a\x01\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\x12.\n&lossy_dc_buffered_amount_low_threshold\x18\x04 \x02(\x04\x12\x31\n)reliable_dc_buffered_amount_low_threshold\x18\x05 \x02(\x04\"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\"\x8e\x07\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 \x01(\x05\x12\x1a\n\x12reply_to_stream_id\x18\x03 \x01(\t\x12\x1b\n\x13\x61ttached_stream_ids\x18\x04 \x03(\t\x12\x11\n\tgenerated\x18\x05 \x01(\x08\x1a\x1a\n\nByteHeader\x12\x0c\n\x04name\x18\x01 \x02(\t\x1a\xeb\x02\n\x06Header\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\x11\n\tmime_type\x18\x03 \x02(\t\x12\r\n\x05topic\x18\x04 \x02(\t\x12\x14\n\x0ctotal_length\x18\x05 \x01(\x04\x12\x44\n\nattributes\x18\x06 \x03(\x0b\x32\x30.livekit.proto.DataStream.Header.AttributesEntry\x12;\n\x0btext_header\x18\x07 \x01(\x0b\x32$.livekit.proto.DataStream.TextHeaderH\x00\x12;\n\x0b\x62yte_header\x18\x08 \x01(\x0b\x32$.livekit.proto.DataStream.ByteHeaderH\x00\x1a\x31\n\x0f\x41ttributesEntry\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\x1a]\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\x0f\n\x07version\x18\x04 \x01(\x05\x12\n\n\x02iv\x18\x05 \x01(\x0c\x1a\xa6\x01\n\x07Trailer\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x0e\n\x06reason\x18\x02 \x02(\t\x12\x45\n\nattributes\x18\x03 \x03(\x0b\x32\x31.livekit.proto.DataStream.Trailer.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"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\"j\n\x18\x44\x61taStreamHeaderReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\"g\n\x17\x44\x61taStreamChunkReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\"m\n\x19\x44\x61taStreamTrailerReceived\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\"\xa6\x01\n\x17SendStreamHeaderRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x30\n\x06header\x18\x02 \x02(\x0b\x32 .livekit.proto.DataStream.Header\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa3\x01\n\x16SendStreamChunkRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12.\n\x05\x63hunk\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataStream.Chunk\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\"\xa9\x01\n\x18SendStreamTrailerRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\x07trailer\x18\x02 \x02(\x0b\x32!.livekit.proto.DataStream.Trailer\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x02(\t\",\n\x18SendStreamHeaderResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"+\n\x17SendStreamChunkResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"-\n\x19SendStreamTrailerResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SendStreamHeaderCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\":\n\x17SendStreamChunkCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"<\n\x19SendStreamTrailerCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x93\x01\n/SetDataChannelBufferedAmountLowThresholdRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\tthreshold\x18\x02 \x02(\x04\x12+\n\x04kind\x18\x03 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\"2\n0SetDataChannelBufferedAmountLowThresholdResponse\"n\n,DataChannelBufferedAmountLowThresholdChanged\x12+\n\x04kind\x18\x01 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x11\n\tthreshold\x18\x02 \x02(\x04*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) @@ -34,16 +44,16 @@ _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._loaded_options = None _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_ICETRANSPORTTYPE']._serialized_start=12111 - _globals['_ICETRANSPORTTYPE']._serialized_end=12191 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=12193 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=12260 - _globals['_CONNECTIONQUALITY']._serialized_start=12262 - _globals['_CONNECTIONQUALITY']._serialized_end=12358 - _globals['_CONNECTIONSTATE']._serialized_start=12360 - _globals['_CONNECTIONSTATE']._serialized_end=12443 - _globals['_DATAPACKETKIND']._serialized_start=12445 - _globals['_DATAPACKETKIND']._serialized_end=12496 + _globals['_ICETRANSPORTTYPE']._serialized_start=12047 + _globals['_ICETRANSPORTTYPE']._serialized_end=12127 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=12129 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=12196 + _globals['_CONNECTIONQUALITY']._serialized_start=12198 + _globals['_CONNECTIONQUALITY']._serialized_end=12294 + _globals['_CONNECTIONSTATE']._serialized_start=12296 + _globals['_CONNECTIONSTATE']._serialized_end=12379 + _globals['_DATAPACKETKIND']._serialized_start=12381 + _globals['_DATAPACKETKIND']._serialized_end=12432 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -143,129 +153,129 @@ _globals['_AUDIOFILTERMODULE']._serialized_start=4335 _globals['_AUDIOFILTERMODULE']._serialized_end=4392 _globals['_ROOMOPTIONS']._serialized_start=4395 - _globals['_ROOMOPTIONS']._serialized_end=4649 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=4651 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=4770 - _globals['_BUFFERINFO']._serialized_start=4772 - _globals['_BUFFERINFO']._serialized_end=4820 - _globals['_OWNEDBUFFER']._serialized_start=4822 - _globals['_OWNEDBUFFER']._serialized_end=4923 - _globals['_ROOMEVENT']._serialized_start=4926 - _globals['_ROOMEVENT']._serialized_end=7143 - _globals['_ROOMINFO']._serialized_start=7146 - _globals['_ROOMINFO']._serialized_end=7300 - _globals['_OWNEDROOM']._serialized_start=7302 - _globals['_OWNEDROOM']._serialized_end=7399 - _globals['_PARTICIPANTCONNECTED']._serialized_start=7401 - _globals['_PARTICIPANTCONNECTED']._serialized_end=7470 - _globals['_PARTICIPANTDISCONNECTED']._serialized_start=7472 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=7527 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=7529 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=7569 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=7571 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=7619 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=7621 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=7662 - _globals['_TRACKPUBLISHED']._serialized_start=7664 - _globals['_TRACKPUBLISHED']._serialized_end=7769 - _globals['_TRACKUNPUBLISHED']._serialized_start=7771 - _globals['_TRACKUNPUBLISHED']._serialized_end=7844 - _globals['_TRACKSUBSCRIBED']._serialized_start=7846 - _globals['_TRACKSUBSCRIBED']._serialized_end=7935 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=7937 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=8005 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=8007 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=8096 - _globals['_TRACKMUTED']._serialized_start=8098 - _globals['_TRACKMUTED']._serialized_end=8159 - _globals['_TRACKUNMUTED']._serialized_start=8161 - _globals['_TRACKUNMUTED']._serialized_end=8224 - _globals['_E2EESTATECHANGED']._serialized_start=8226 - _globals['_E2EESTATECHANGED']._serialized_end=8321 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=8323 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=8378 - _globals['_ROOMMETADATACHANGED']._serialized_start=8380 - _globals['_ROOMMETADATACHANGED']._serialized_end=8419 - _globals['_ROOMSIDCHANGED']._serialized_start=8421 - _globals['_ROOMSIDCHANGED']._serialized_end=8450 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=8452 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=8528 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=8531 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=8703 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=8705 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=8773 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=8775 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=8882 - _globals['_USERPACKET']._serialized_start=8884 - _globals['_USERPACKET']._serialized_end=8953 - _globals['_CHATMESSAGE']._serialized_start=8955 - _globals['_CHATMESSAGE']._serialized_end=9076 - _globals['_CHATMESSAGERECEIVED']._serialized_start=9078 - _globals['_CHATMESSAGERECEIVED']._serialized_end=9174 - _globals['_SIPDTMF']._serialized_start=9176 - _globals['_SIPDTMF']._serialized_end=9214 - _globals['_DATAPACKETRECEIVED']._serialized_start=9217 - _globals['_DATAPACKETRECEIVED']._serialized_end=9408 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=9410 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=9537 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=9539 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=9610 - _globals['_CONNECTED']._serialized_start=9612 - _globals['_CONNECTED']._serialized_end=9623 - _globals['_DISCONNECTED']._serialized_start=9625 - _globals['_DISCONNECTED']._serialized_end=9688 - _globals['_RECONNECTING']._serialized_start=9690 - _globals['_RECONNECTING']._serialized_end=9704 - _globals['_RECONNECTED']._serialized_start=9706 - _globals['_RECONNECTED']._serialized_end=9719 - _globals['_ROOMEOS']._serialized_start=9721 - _globals['_ROOMEOS']._serialized_end=9730 - _globals['_DATASTREAM']._serialized_start=9733 - _globals['_DATASTREAM']._serialized_end=10643 - _globals['_DATASTREAM_TEXTHEADER']._serialized_start=9748 - _globals['_DATASTREAM_TEXTHEADER']._serialized_end=9918 - _globals['_DATASTREAM_BYTEHEADER']._serialized_start=9920 - _globals['_DATASTREAM_BYTEHEADER']._serialized_end=9946 - _globals['_DATASTREAM_HEADER']._serialized_start=9949 - _globals['_DATASTREAM_HEADER']._serialized_end=10312 - _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_start=10245 - _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_end=10294 - _globals['_DATASTREAM_CHUNK']._serialized_start=10314 - _globals['_DATASTREAM_CHUNK']._serialized_end=10407 - _globals['_DATASTREAM_TRAILER']._serialized_start=10410 - _globals['_DATASTREAM_TRAILER']._serialized_end=10576 - _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_start=10245 - _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_end=10294 - _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=10578 - _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=10643 - _globals['_DATASTREAMHEADERRECEIVED']._serialized_start=10645 - _globals['_DATASTREAMHEADERRECEIVED']._serialized_end=10751 - _globals['_DATASTREAMCHUNKRECEIVED']._serialized_start=10753 - _globals['_DATASTREAMCHUNKRECEIVED']._serialized_end=10856 - _globals['_DATASTREAMTRAILERRECEIVED']._serialized_start=10858 - _globals['_DATASTREAMTRAILERRECEIVED']._serialized_end=10967 - _globals['_SENDSTREAMHEADERREQUEST']._serialized_start=10970 - _globals['_SENDSTREAMHEADERREQUEST']._serialized_end=11136 - _globals['_SENDSTREAMCHUNKREQUEST']._serialized_start=11139 - _globals['_SENDSTREAMCHUNKREQUEST']._serialized_end=11302 - _globals['_SENDSTREAMTRAILERREQUEST']._serialized_start=11305 - _globals['_SENDSTREAMTRAILERREQUEST']._serialized_end=11474 - _globals['_SENDSTREAMHEADERRESPONSE']._serialized_start=11476 - _globals['_SENDSTREAMHEADERRESPONSE']._serialized_end=11520 - _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_start=11522 - _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_end=11565 - _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_start=11567 - _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_end=11612 - _globals['_SENDSTREAMHEADERCALLBACK']._serialized_start=11614 - _globals['_SENDSTREAMHEADERCALLBACK']._serialized_end=11673 - _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_start=11675 - _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_end=11733 - _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_start=11735 - _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_end=11795 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_start=11798 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_end=11945 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_start=11947 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_end=11997 - _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_start=11999 - _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_end=12109 + _globals['_ROOMOPTIONS']._serialized_end=4585 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=4587 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=4706 + _globals['_BUFFERINFO']._serialized_start=4708 + _globals['_BUFFERINFO']._serialized_end=4756 + _globals['_OWNEDBUFFER']._serialized_start=4758 + _globals['_OWNEDBUFFER']._serialized_end=4859 + _globals['_ROOMEVENT']._serialized_start=4862 + _globals['_ROOMEVENT']._serialized_end=7079 + _globals['_ROOMINFO']._serialized_start=7082 + _globals['_ROOMINFO']._serialized_end=7236 + _globals['_OWNEDROOM']._serialized_start=7238 + _globals['_OWNEDROOM']._serialized_end=7335 + _globals['_PARTICIPANTCONNECTED']._serialized_start=7337 + _globals['_PARTICIPANTCONNECTED']._serialized_end=7406 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=7408 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=7463 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=7465 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=7505 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=7507 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=7555 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=7557 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=7598 + _globals['_TRACKPUBLISHED']._serialized_start=7600 + _globals['_TRACKPUBLISHED']._serialized_end=7705 + _globals['_TRACKUNPUBLISHED']._serialized_start=7707 + _globals['_TRACKUNPUBLISHED']._serialized_end=7780 + _globals['_TRACKSUBSCRIBED']._serialized_start=7782 + _globals['_TRACKSUBSCRIBED']._serialized_end=7871 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=7873 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=7941 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=7943 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=8032 + _globals['_TRACKMUTED']._serialized_start=8034 + _globals['_TRACKMUTED']._serialized_end=8095 + _globals['_TRACKUNMUTED']._serialized_start=8097 + _globals['_TRACKUNMUTED']._serialized_end=8160 + _globals['_E2EESTATECHANGED']._serialized_start=8162 + _globals['_E2EESTATECHANGED']._serialized_end=8257 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=8259 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=8314 + _globals['_ROOMMETADATACHANGED']._serialized_start=8316 + _globals['_ROOMMETADATACHANGED']._serialized_end=8355 + _globals['_ROOMSIDCHANGED']._serialized_start=8357 + _globals['_ROOMSIDCHANGED']._serialized_end=8386 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=8388 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=8464 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=8467 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=8639 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=8641 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=8709 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=8711 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=8818 + _globals['_USERPACKET']._serialized_start=8820 + _globals['_USERPACKET']._serialized_end=8889 + _globals['_CHATMESSAGE']._serialized_start=8891 + _globals['_CHATMESSAGE']._serialized_end=9012 + _globals['_CHATMESSAGERECEIVED']._serialized_start=9014 + _globals['_CHATMESSAGERECEIVED']._serialized_end=9110 + _globals['_SIPDTMF']._serialized_start=9112 + _globals['_SIPDTMF']._serialized_end=9150 + _globals['_DATAPACKETRECEIVED']._serialized_start=9153 + _globals['_DATAPACKETRECEIVED']._serialized_end=9344 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=9346 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=9473 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=9475 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=9546 + _globals['_CONNECTED']._serialized_start=9548 + _globals['_CONNECTED']._serialized_end=9559 + _globals['_DISCONNECTED']._serialized_start=9561 + _globals['_DISCONNECTED']._serialized_end=9624 + _globals['_RECONNECTING']._serialized_start=9626 + _globals['_RECONNECTING']._serialized_end=9640 + _globals['_RECONNECTED']._serialized_start=9642 + _globals['_RECONNECTED']._serialized_end=9655 + _globals['_ROOMEOS']._serialized_start=9657 + _globals['_ROOMEOS']._serialized_end=9666 + _globals['_DATASTREAM']._serialized_start=9669 + _globals['_DATASTREAM']._serialized_end=10579 + _globals['_DATASTREAM_TEXTHEADER']._serialized_start=9684 + _globals['_DATASTREAM_TEXTHEADER']._serialized_end=9854 + _globals['_DATASTREAM_BYTEHEADER']._serialized_start=9856 + _globals['_DATASTREAM_BYTEHEADER']._serialized_end=9882 + _globals['_DATASTREAM_HEADER']._serialized_start=9885 + _globals['_DATASTREAM_HEADER']._serialized_end=10248 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_start=10181 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_end=10230 + _globals['_DATASTREAM_CHUNK']._serialized_start=10250 + _globals['_DATASTREAM_CHUNK']._serialized_end=10343 + _globals['_DATASTREAM_TRAILER']._serialized_start=10346 + _globals['_DATASTREAM_TRAILER']._serialized_end=10512 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_start=10181 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_end=10230 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=10514 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=10579 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_start=10581 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_end=10687 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_start=10689 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_end=10792 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_start=10794 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_end=10903 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_start=10906 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_end=11072 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_start=11075 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_end=11238 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_start=11241 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_end=11410 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_start=11412 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_end=11456 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_start=11458 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_end=11501 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_start=11503 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_end=11548 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_start=11550 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_end=11609 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_start=11611 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_end=11669 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_start=11671 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_end=11731 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_start=11734 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_end=11881 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_start=11883 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_end=11933 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_start=11935 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_end=12045 # @@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 15fb9e3f..045ada92 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -1155,7 +1155,6 @@ class RoomOptions(google.protobuf.message.Message): E2EE_FIELD_NUMBER: builtins.int RTC_CONFIG_FIELD_NUMBER: builtins.int JOIN_RETRIES_FIELD_NUMBER: builtins.int - AUDIO_FILTER_HANDLES_FIELD_NUMBER: builtins.int auto_subscribe: builtins.bool adaptive_stream: builtins.bool dynacast: builtins.bool @@ -1166,8 +1165,6 @@ class RoomOptions(google.protobuf.message.Message): def rtc_config(self) -> global___RtcConfig: """allow to setup a custom RtcConfiguration""" - @property - def audio_filter_handles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AudioFilterModule]: ... def __init__( self, *, @@ -1177,10 +1174,9 @@ class RoomOptions(google.protobuf.message.Message): e2ee: e2ee_pb2.E2eeOptions | None = ..., rtc_config: global___RtcConfig | None = ..., join_retries: builtins.int | None = ..., - audio_filter_handles: collections.abc.Iterable[global___AudioFilterModule] | None = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "auto_subscribe", b"auto_subscribe", "dynacast", b"dynacast", "e2ee", b"e2ee", "join_retries", b"join_retries", "rtc_config", b"rtc_config"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "audio_filter_handles", b"audio_filter_handles", "auto_subscribe", b"auto_subscribe", "dynacast", b"dynacast", "e2ee", b"e2ee", "join_retries", b"join_retries", "rtc_config", b"rtc_config"]) -> None: ... + def ClearField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "auto_subscribe", b"auto_subscribe", "dynacast", b"dynacast", "e2ee", b"e2ee", "join_retries", b"join_retries", "rtc_config", b"rtc_config"]) -> None: ... global___RoomOptions = RoomOptions diff --git a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py index 1b6302cd..8742ff25 100644 --- a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: rpc.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'rpc.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py index 2cbdb1cd..5d980d06 100644 --- a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: stats.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'stats.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_pb2.py index 5e3d1691..43988a1c 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: track.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'track.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py index 22a19081..b58568d5 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: track_publication.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'track_publication.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py index bcbd99e9..5bf179d6 100644 --- a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py @@ -1,12 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: video_frame.proto -# Protobuf Python Version: 5.26.1 +# Protobuf Python Version: 5.29.2 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 2, + '', + 'video_frame.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index b2c9ec60..b683a759 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -5,10 +5,11 @@ class AudioFilter: - def __init__(self, path: str, dependencies: Optional[List[str]] = None) -> None: + def __init__(self, module_id: str, path: str, dependencies: Optional[List[str]] = None) -> None: self._path = path req = proto_ffi.FfiRequest() + req.load_audio_filter_plugin.module_id = module_id req.load_audio_filter_plugin.plugin_path = path req.load_audio_filter_plugin.dependencies[:] = ( dependencies if dependencies is not None else [] @@ -16,8 +17,8 @@ def __init__(self, path: str, dependencies: Optional[List[str]] = None) -> None: resp = FfiClient.instance.request(req) - self._ffi_handle_id = resp.load_audio_filter_plugin.handle.id - self._ffi_handle = FfiHandle(resp.load_audio_filter_plugin.handle.id) + if resp.load_audio_filter_plugin.error: + raise Exception(f"failed to initialize audio filter #{resp.load_audio_filter_plugin.error}") def handle(self) -> int: return self._ffi_handle_id diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index fd79d813..a67adf76 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -379,25 +379,6 @@ def on_participant_connected(participant): options.rtc_config.ice_servers ) - if options.audio_filters: - for module in options.audio_filters: - if hasattr(module, "dependencies_path"): - deps = module.dependencies_path() or [] - else: - deps = [] - - audio_filter = AudioFilter( - path=module.plugin_path(), - dependencies=deps, - ) - self._filter_instances[module] = audio_filter - req.connect.options.audio_filter_handles.append( - proto_room.AudioFilterModule( - module_id=str(id(module)), - handle_id=audio_filter.handle(), - ) - ) - # subscribe before connecting so we don't miss any events self._ffi_queue = FfiClient.instance.queue.subscribe(self._loop) From 4acbb07e4c9c17da9cb1baea1c2652e1afe996fe Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 24 Feb 2025 15:48:52 -0800 Subject: [PATCH 27/36] format --- livekit-rtc/livekit/rtc/audio_filter.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index b683a759..0f913b07 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -5,7 +5,9 @@ class AudioFilter: - def __init__(self, module_id: str, path: str, dependencies: Optional[List[str]] = None) -> None: + def __init__( + self, module_id: str, path: str, dependencies: Optional[List[str]] = None + ) -> None: self._path = path req = proto_ffi.FfiRequest() @@ -18,7 +20,9 @@ def __init__(self, module_id: str, path: str, dependencies: Optional[List[str]] resp = FfiClient.instance.request(req) if resp.load_audio_filter_plugin.error: - raise Exception(f"failed to initialize audio filter #{resp.load_audio_filter_plugin.error}") + raise Exception( + f"failed to initialize audio filter #{resp.load_audio_filter_plugin.error}" + ) def handle(self) -> int: return self._ffi_handle_id From a3a40b11cff471c5e21113176b9b20444aca4c5b Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 24 Feb 2025 15:50:48 -0800 Subject: [PATCH 28/36] handle no longer exists in Python --- livekit-rtc/livekit/rtc/audio_filter.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_filter.py b/livekit-rtc/livekit/rtc/audio_filter.py index 0f913b07..8de4de03 100644 --- a/livekit-rtc/livekit/rtc/audio_filter.py +++ b/livekit-rtc/livekit/rtc/audio_filter.py @@ -1,6 +1,6 @@ from typing import Optional, List -from ._ffi_client import FfiClient, FfiHandle +from ._ffi_client import FfiClient from ._proto import ffi_pb2 as proto_ffi @@ -23,6 +23,3 @@ def __init__( raise Exception( f"failed to initialize audio filter #{resp.load_audio_filter_plugin.error}" ) - - def handle(self) -> int: - return self._ffi_handle_id From b68db8a712cd63207ca37efed1e93749770250be Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Mon, 24 Feb 2025 22:39:20 -0800 Subject: [PATCH 29/36] rename audio_filter to krisp --- livekit-rtc/livekit/rtc/audio_stream.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index 06f248d0..08250fc6 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -55,7 +55,7 @@ def __init__( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - audio_filter: Optional[Tuple[str, dict[str, Any]]] = None, + krisp: Optional[Tuple[str, dict[str, Any]]] = None, **kwargs, ) -> None: """Initialize an `AudioStream` instance. @@ -93,9 +93,9 @@ def __init__( self._audio_filter_module = None self._audio_filter_options = None - if audio_filter is not None: - self._audio_filter_module = audio_filter[0] - self._audio_filter_options = audio_filter[1] + if krisp is not None: + self._audio_filter_module = krisp[0] + self._audio_filter_options = krisp[1] self._task = self._loop.create_task(self._run()) self._task.add_done_callback(task_done_logger) @@ -119,7 +119,7 @@ def from_participant( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - audio_filter: Optional[Tuple[str, dict[str, Any]]] = None, + krisp: Optional[Tuple[str, dict[str, Any]]] = None, ) -> AudioStream: """Create an `AudioStream` from a participant's audio track. @@ -152,7 +152,7 @@ def from_participant( track=None, # type: ignore sample_rate=sample_rate, num_channels=num_channels, - audio_filter=audio_filter, + krisp=krisp, ) @classmethod @@ -164,7 +164,7 @@ def from_track( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - audio_filter: Optional[Tuple[str, dict[str, Any]]] = None, + krisp: Optional[Tuple[str, dict[str, Any]]] = None, ) -> AudioStream: """Create an `AudioStream` from an existing audio track. @@ -193,7 +193,7 @@ def from_track( capacity=capacity, sample_rate=sample_rate, num_channels=num_channels, - audio_filter=audio_filter, + krisp=krisp, ) def __del__(self) -> None: From 2f3efa8bfe2b34d7ce8afbf740a9cc212a1dcd58 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Tue, 25 Feb 2025 09:44:08 -0800 Subject: [PATCH 30/36] rename it again --- livekit-rtc/livekit/rtc/audio_stream.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index 08250fc6..9a8deea5 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -55,7 +55,7 @@ def __init__( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - krisp: Optional[Tuple[str, dict[str, Any]]] = None, + noise_cancellation: Optional[Tuple[str, dict[str, Any]]] = None, **kwargs, ) -> None: """Initialize an `AudioStream` instance. @@ -93,9 +93,9 @@ def __init__( self._audio_filter_module = None self._audio_filter_options = None - if krisp is not None: - self._audio_filter_module = krisp[0] - self._audio_filter_options = krisp[1] + if noise_cancellation is not None: + self._audio_filter_module = noise_cancellation[0] + self._audio_filter_options = noise_cancellation[1] self._task = self._loop.create_task(self._run()) self._task.add_done_callback(task_done_logger) @@ -119,7 +119,7 @@ def from_participant( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - krisp: Optional[Tuple[str, dict[str, Any]]] = None, + noise_cancellation: Optional[Tuple[str, dict[str, Any]]] = None, ) -> AudioStream: """Create an `AudioStream` from a participant's audio track. @@ -152,7 +152,7 @@ def from_participant( track=None, # type: ignore sample_rate=sample_rate, num_channels=num_channels, - krisp=krisp, + noise_cancellation=noise_cancellation, ) @classmethod @@ -164,7 +164,7 @@ def from_track( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - krisp: Optional[Tuple[str, dict[str, Any]]] = None, + noise_cancellation: Optional[Tuple[str, dict[str, Any]]] = None, ) -> AudioStream: """Create an `AudioStream` from an existing audio track. @@ -193,7 +193,7 @@ def from_track( capacity=capacity, sample_rate=sample_rate, num_channels=num_channels, - krisp=krisp, + noise_cancellation=noise_cancellation, ) def __del__(self) -> None: From 5e499f663c0f6465eef45007e2f19a8d2469a6f4 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 26 Feb 2025 08:57:17 -0800 Subject: [PATCH 31/36] add and export NoiseCancellationOptions dataclass --- livekit-rtc/livekit/rtc/__init__.py | 3 ++- livekit-rtc/livekit/rtc/audio_stream.py | 26 ++++++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/livekit-rtc/livekit/rtc/__init__.py b/livekit-rtc/livekit/rtc/__init__.py index a94f64a9..c11743ba 100644 --- a/livekit-rtc/livekit/rtc/__init__.py +++ b/livekit-rtc/livekit/rtc/__init__.py @@ -36,7 +36,7 @@ from ._proto.video_frame_pb2 import VideoBufferType, VideoCodec, VideoRotation from .audio_frame import AudioFrame from .audio_source import AudioSource -from .audio_stream import AudioFrameEvent, AudioStream +from .audio_stream import AudioFrameEvent, AudioStream, NoiseCancellationOptions from .audio_filter import AudioFilter from .chat import ChatManager, ChatMessage from .e2ee import ( @@ -110,6 +110,7 @@ "AudioFrame", "AudioSource", "AudioStream", + "NoiseCancellationOptions", "AudioFilter", "AudioFrameEvent", "LocalParticipant", diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index 9a8deea5..6277aef4 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -40,6 +40,12 @@ class AudioFrameEvent: frame: AudioFrame +@dataclass +class NoiseCancellationOptions: + module_id: str + options: dict[str, Any] + + class AudioStream: """An asynchronous audio stream for receiving audio frames from a participant or track. @@ -55,7 +61,7 @@ def __init__( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - noise_cancellation: Optional[Tuple[str, dict[str, Any]]] = None, + noise_cancellation: Optional[NoiseCancellationOptions] = None, **kwargs, ) -> None: """Initialize an `AudioStream` instance. @@ -69,6 +75,10 @@ def __init__( sample_rate (int, optional): The sample rate for the audio stream in Hz. Defaults to 48000. num_channels (int, optional): The number of audio channels. Defaults to 1. + noise_cancellation (Optional[NoiseCancellationOptions], optional): + If noise cancellation is used, pass a `NoiseCancellationOptions` instance + created by the noise cancellation module. + Example: ```python audio_stream = AudioStream( @@ -94,8 +104,8 @@ def __init__( self._audio_filter_module = None self._audio_filter_options = None if noise_cancellation is not None: - self._audio_filter_module = noise_cancellation[0] - self._audio_filter_options = noise_cancellation[1] + self._audio_filter_module = noise_cancellation.module_id + self._audio_filter_options = noise_cancellation.options self._task = self._loop.create_task(self._run()) self._task.add_done_callback(task_done_logger) @@ -119,7 +129,7 @@ def from_participant( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - noise_cancellation: Optional[Tuple[str, dict[str, Any]]] = None, + noise_cancellation: Optional[NoiseCancellationOptions] = None, ) -> AudioStream: """Create an `AudioStream` from a participant's audio track. @@ -130,6 +140,9 @@ def from_participant( capacity (int, optional): The capacity of the internal frame queue. Defaults to 0 (unbounded). sample_rate (int, optional): The sample rate for the audio stream in Hz. Defaults to 48000. num_channels (int, optional): The number of audio channels. Defaults to 1. + noise_cancellation (Optional[NoiseCancellationOptions], optional): + If noise cancellation is used, pass a `NoiseCancellationOptions` instance + created by the noise cancellation module. Returns: AudioStream: An instance of `AudioStream` that can be used to receive audio frames. @@ -164,7 +177,7 @@ def from_track( capacity: int = 0, sample_rate: int = 48000, num_channels: int = 1, - noise_cancellation: Optional[Tuple[str, dict[str, Any]]] = None, + noise_cancellation: Optional[NoiseCancellationOptions] = None, ) -> AudioStream: """Create an `AudioStream` from an existing audio track. @@ -174,6 +187,9 @@ def from_track( capacity (int, optional): The capacity of the internal frame queue. Defaults to 0 (unbounded). sample_rate (int, optional): The sample rate for the audio stream in Hz. Defaults to 48000. num_channels (int, optional): The number of audio channels. Defaults to 1. + noise_cancellation (Optional[NoiseCancellationOptions], optional): + If noise cancellation is used, pass a `NoiseCancellationOptions` instance + created by the noise cancellation module. Returns: AudioStream: An instance of `AudioStream` that can be used to receive audio frames. From da4abb632209fe5462d93926f22e813429ee88fa Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Wed, 26 Feb 2025 09:05:39 -0800 Subject: [PATCH 32/36] remove unused type --- livekit-rtc/livekit/rtc/audio_stream.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/livekit/rtc/audio_stream.py b/livekit-rtc/livekit/rtc/audio_stream.py index 6277aef4..37008664 100644 --- a/livekit-rtc/livekit/rtc/audio_stream.py +++ b/livekit-rtc/livekit/rtc/audio_stream.py @@ -17,7 +17,7 @@ import asyncio import json from dataclasses import dataclass -from typing import Any, AsyncIterator, Optional, Tuple +from typing import Any, AsyncIterator, Optional from ._ffi_client import FfiClient, FfiHandle from ._proto import audio_frame_pb2 as proto_audio_frame From 9589f476d94c51b8538c0e321688da2dbf171a18 Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Thu, 27 Feb 2025 13:56:03 -0800 Subject: [PATCH 33/36] forgot to remove this --- livekit-rtc/livekit/rtc/room.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index a67adf76..d04324c9 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -98,8 +98,6 @@ class RoomOptions: """Options for end-to-end encryption.""" rtc_config: RtcConfiguration | None = None """WebRTC-related configuration.""" - audio_filters: List[ModuleType] | None = None - """Audio filters""" @dataclass @@ -147,7 +145,6 @@ def __init__( self._info = proto_room.RoomInfo() self._rpc_invocation_tasks: set[asyncio.Task] = set() self._data_stream_tasks: set[asyncio.Task] = set() - self._filter_instances: Dict[ModuleType, AudioFilter] = {} self._remote_participants: Dict[str, RemoteParticipant] = {} self._connection_state = ConnectionState.CONN_DISCONNECTED @@ -860,12 +857,6 @@ def _create_remote_participant( self._remote_participants[participant.identity] = participant return participant - def _filter_handle(self, plugin) -> int | None: - f = self._filter_instances.get(plugin) - if f: - return f.handle() - return None - def __repr__(self) -> str: sid = "unknown" if self._first_sid_future.done(): From d1cb978035aa50516ceb402bb65030033af9e72b Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Thu, 27 Feb 2025 13:58:06 -0800 Subject: [PATCH 34/36] remove unused import --- livekit-rtc/livekit/rtc/room.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index d04324c9..88b1be20 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -17,8 +17,7 @@ import ctypes import logging from dataclasses import dataclass, field -from typing import Callable, Dict, Literal, Optional, cast, Mapping, List -from types import ModuleType +from typing import Callable, Dict, Literal, Optional, cast, Mapping from .event_emitter import EventEmitter from ._ffi_client import FfiClient, FfiHandle @@ -34,7 +33,6 @@ from .track import RemoteAudioTrack, RemoteVideoTrack from .track_publication import RemoteTrackPublication, TrackPublication from .transcription import TranscriptionSegment -from .audio_filter import AudioFilter from .data_stream import ( TextStreamReader, ByteStreamReader, From a36519db2fc32d03bc52cdf4b7a6ed2b5416cc0c Mon Sep 17 00:00:00 2001 From: Daisuke Murase Date: Thu, 27 Feb 2025 19:52:05 -0800 Subject: [PATCH 35/36] update rust-sdk to rust-sdks/livekit-ffi@0.12.12 --- livekit-rtc/rust-sdks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index 8799552d..c833df8e 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit 8799552db614a7ef44f6468956d82a2c768504f1 +Subproject commit c833df8e31532b72d6f738e9a8fd1beb11e9b321 From 58688919a67e4723fe6f97e1dfdf9dd56f47af4e Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2025 03:57:26 +0000 Subject: [PATCH 36/36] generated protobuf --- livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/ffi_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/handle_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/participant_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/rpc_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/stats_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/track_pb2.py | 12 +----------- .../livekit/rtc/_proto/track_publication_pb2.py | 12 +----------- livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py | 12 +----------- 11 files changed, 11 insertions(+), 121 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index 578b51d0..fd35778d 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: audio_frame.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'audio_frame.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py index 3d5d637a..482deb8a 100644 --- a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: e2ee.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'e2ee.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index 3eb153cc..96700e02 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: ffi.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'ffi.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py index 2c19a638..98d253b4 100644 --- a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: handle.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'handle.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py index 88eff7e4..b4425bd1 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: participant.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'participant.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index f59899d1..57baa54d 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: room.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'room.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py index 8742ff25..1b6302cd 100644 --- a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: rpc.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'rpc.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py index 5d980d06..2cbdb1cd 100644 --- a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: stats.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'stats.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_pb2.py index 43988a1c..5e3d1691 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: track.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'track.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py index b58568d5..22a19081 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: track_publication.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'track_publication.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() diff --git a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py index 5bf179d6..bcbd99e9 100644 --- a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py @@ -1,22 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE # source: video_frame.proto -# Protobuf Python Version: 5.29.2 +# 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 runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 2, - '', - 'video_frame.proto' -) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default()