diff --git a/.changeset/prewarmed-connection.md b/.changeset/prewarmed-connection.md new file mode 100644 index 000000000..1eb60eb41 --- /dev/null +++ b/.changeset/prewarmed-connection.md @@ -0,0 +1,5 @@ +--- +"livekit-rtc": minor +--- + +Add `PrewarmedConnection` and `RoomOptions.prewarmed_connection` to open the signalling TCP/TLS connection ahead of `Room.connect`, so the connect only performs the WebSocket upgrade. diff --git a/livekit-rtc/livekit/rtc/__init__.py b/livekit-rtc/livekit/rtc/__init__.py index 4be4c1247..b6b4eccc7 100644 --- a/livekit-rtc/livekit/rtc/__init__.py +++ b/livekit-rtc/livekit/rtc/__init__.py @@ -79,6 +79,7 @@ RtcConfiguration, SipDTMF, RtcStats, + PrewarmedConnection, ) from .track import ( AudioTrack, @@ -192,6 +193,7 @@ "RemoteParticipant", "ConnectError", "Room", + "PrewarmedConnection", "RoomOptions", "DataStreamOptions", "RtcConfiguration", diff --git a/livekit-rtc/livekit/rtc/_proto/capture_pb2.py b/livekit-rtc/livekit/rtc/_proto/capture_pb2.py index a537442bf..74e4d2d57 100644 --- a/livekit-rtc/livekit/rtc/_proto/capture_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/capture_pb2.py @@ -17,7 +17,7 @@ from . import video_frame_pb2 as video__frame__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rcapture.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\nroom.proto\x1a\x11video_frame.proto\"l\n\x14GstreamerRateControl\x12\x0f\n\x07\x65lement\x18\x01 \x02(\t\x12\x10\n\x08property\x18\x02 \x02(\t\x12\x31\n\x04unit\x18\x03 \x02(\x0e\x32#.livekit.proto.GstreamerBitrateUnit\"\xcd\x01\n\x1aGstreamerVideoSourceConfig\x12\x10\n\x08pipeline\x18\x01 \x02(\t\x12(\n\x05\x63odec\x18\x02 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x38\n\nresolution\x18\x03 \x01(\x0b\x32$.livekit.proto.VideoSourceResolution\x12\x39\n\x0crate_control\x18\x04 \x01(\x0b\x32#.livekit.proto.GstreamerRateControl\"\x94\x01\n\x18PatternVideoSourceConfig\x12\x38\n\nresolution\x18\x01 \x02(\x0b\x32$.livekit.proto.VideoSourceResolution\x12\x15\n\rframerate_fps\x18\x02 \x02(\r\x12\'\n\x07pattern\x18\x03 \x02(\x0e\x32\x16.livekit.proto.Pattern\"i\n\x16\x43lockVideoSourceConfig\x12\x38\n\nresolution\x18\x01 \x02(\x0b\x32$.livekit.proto.VideoSourceResolution\x12\x15\n\rframerate_fps\x18\x02 \x02(\r\"\xa7\x02\n\x11\x43\x61ptureSourceInfo\x12.\n\x04kind\x18\x01 \x02(\x0e\x32 .livekit.proto.CaptureSourceKind\x12\x38\n\nresolution\x18\x02 \x02(\x0b\x32$.livekit.proto.VideoSourceResolution\x12(\n\x05\x63odec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12G\n\x1brecommended_publish_options\x18\x04 \x02(\x0b\x32\".livekit.proto.TrackPublishOptions\x12\x35\n\x0cvideo_source\x18\x05 \x02(\x0b\x32\x1f.livekit.proto.OwnedVideoSource\"s\n\x12OwnedCaptureSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12.\n\x04info\x18\x02 \x02(\x0b\x32 .livekit.proto.CaptureSourceInfo\"\xf1\x01\n\x17NewCaptureSourceRequest\x12>\n\tgstreamer\x18\x01 \x01(\x0b\x32).livekit.proto.GstreamerVideoSourceConfigH\x00\x12:\n\x07pattern\x18\x02 \x01(\x0b\x32\'.livekit.proto.PatternVideoSourceConfigH\x00\x12\x36\n\x05\x63lock\x18\x05 \x01(\x0b\x32%.livekit.proto.ClockVideoSourceConfigH\x00\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\x42\x08\n\x06\x63onfig\",\n\x18NewCaptureSourceResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"}\n\x18NewCaptureSourceCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x33\n\x06source\x18\x03 \x01(\x0b\x32!.livekit.proto.OwnedCaptureSourceH\x00\x42\t\n\x07message\"-\n\x13StartCaptureRequest\x12\x16\n\x0e\x63\x61pture_handle\x18\x01 \x02(\x04\"%\n\x14StartCaptureResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\",\n\x12StopCaptureRequest\x12\x16\n\x0e\x63\x61pture_handle\x18\x01 \x02(\x04\"$\n\x13StopCaptureResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\"T\n\x0f\x43\x61ptureFinished\x12\x17\n\x0f\x66rames_captured\x18\x01 \x02(\x04\x12(\n\x04\x65xit\x18\x02 \x02(\x0e\x32\x1a.livekit.proto.CaptureExit\"L\n\x0c\x43\x61ptureError\x12\r\n\x05\x65rror\x18\x01 \x02(\t\x12-\n\x04kind\x18\x02 \x02(\x0e\x32\x1f.livekit.proto.CaptureErrorKind\"\x99\x01\n\x12\x43\x61ptureSourceEvent\x12\x16\n\x0e\x63\x61pture_handle\x18\x01 \x02(\x04\x12\x32\n\x08\x66inished\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.CaptureFinishedH\x00\x12,\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x1b.livekit.proto.CaptureErrorH\x00\x42\t\n\x07message*W\n\x14GstreamerBitrateUnit\x12\x1e\n\x1aGSTREAMER_BITRATE_UNIT_BPS\x10\x00\x12\x1f\n\x1bGSTREAMER_BITRATE_UNIT_KBPS\x10\x01*1\n\x07Pattern\x12\x14\n\x10PATTERN_GRADIENT\x10\x00\x12\x10\n\x0cPATTERN_LOGO\x10\x01*I\n\x11\x43\x61ptureSourceKind\x12\x18\n\x14\x43\x41PTURE_SOURCE_PIXEL\x10\x00\x12\x1a\n\x16\x43\x41PTURE_SOURCE_ENCODED\x10\x01*G\n\x0b\x43\x61ptureExit\x12\x18\n\x14\x43\x41PTURE_EXIT_STOPPED\x10\x00\x12\x1e\n\x1a\x43\x41PTURE_EXIT_END_OF_STREAM\x10\x01*n\n\x10\x43\x61ptureErrorKind\x12\x1d\n\x19\x43\x41PTURE_ERROR_KIND_SOURCE\x10\x00\x12\x1a\n\x16\x43\x41PTURE_ERROR_KIND_RTC\x10\x01\x12\x1f\n\x1b\x43\x41PTURE_ERROR_KIND_PANICKED\x10\x02\x42\x10\xaa\x02\rLiveKit.Proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rcapture.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\nroom.proto\x1a\x11video_frame.proto\"l\n\x14GstreamerRateControl\x12\x0f\n\x07\x65lement\x18\x01 \x02(\t\x12\x10\n\x08property\x18\x02 \x02(\t\x12\x31\n\x04unit\x18\x03 \x02(\x0e\x32#.livekit.proto.GstreamerBitrateUnit\"\xcd\x01\n\x1aGstreamerVideoSourceConfig\x12\x10\n\x08pipeline\x18\x01 \x02(\t\x12(\n\x05\x63odec\x18\x02 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x38\n\nresolution\x18\x03 \x01(\x0b\x32$.livekit.proto.VideoSourceResolution\x12\x39\n\x0crate_control\x18\x04 \x01(\x0b\x32#.livekit.proto.GstreamerRateControl\"\x94\x01\n\x18PatternVideoSourceConfig\x12\x38\n\nresolution\x18\x01 \x02(\x0b\x32$.livekit.proto.VideoSourceResolution\x12\x15\n\rframerate_fps\x18\x02 \x02(\r\x12\'\n\x07pattern\x18\x03 \x02(\x0e\x32\x16.livekit.proto.Pattern\"i\n\x16\x43lockVideoSourceConfig\x12\x38\n\nresolution\x18\x01 \x02(\x0b\x32$.livekit.proto.VideoSourceResolution\x12\x15\n\rframerate_fps\x18\x02 \x02(\r\"\xa7\x02\n\x11\x43\x61ptureSourceInfo\x12.\n\x04kind\x18\x01 \x02(\x0e\x32 .livekit.proto.CaptureSourceKind\x12\x38\n\nresolution\x18\x02 \x02(\x0b\x32$.livekit.proto.VideoSourceResolution\x12(\n\x05\x63odec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12G\n\x1brecommended_publish_options\x18\x04 \x02(\x0b\x32\".livekit.proto.TrackPublishOptions\x12\x35\n\x0cvideo_source\x18\x05 \x02(\x0b\x32\x1f.livekit.proto.OwnedVideoSource\"s\n\x12OwnedCaptureSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12.\n\x04info\x18\x02 \x02(\x0b\x32 .livekit.proto.CaptureSourceInfo\"\xf1\x01\n\x17NewCaptureSourceRequest\x12>\n\tgstreamer\x18\x01 \x01(\x0b\x32).livekit.proto.GstreamerVideoSourceConfigH\x00\x12:\n\x07pattern\x18\x02 \x01(\x0b\x32\'.livekit.proto.PatternVideoSourceConfigH\x00\x12\x36\n\x05\x63lock\x18\x05 \x01(\x0b\x32%.livekit.proto.ClockVideoSourceConfigH\x00\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\x42\x08\n\x06\x63onfig\",\n\x18NewCaptureSourceResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"}\n\x18NewCaptureSourceCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x33\n\x06source\x18\x03 \x01(\x0b\x32!.livekit.proto.OwnedCaptureSourceH\x00\x42\t\n\x07message\"-\n\x13StartCaptureRequest\x12\x16\n\x0e\x63\x61pture_handle\x18\x01 \x02(\x04\"%\n\x14StartCaptureResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\",\n\x12StopCaptureRequest\x12\x16\n\x0e\x63\x61pture_handle\x18\x01 \x02(\x04\"$\n\x13StopCaptureResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\"F\n\x12JoinCaptureRequest\x12\x16\n\x0e\x63\x61pture_handle\x18\x01 \x02(\x04\x12\x18\n\x10request_async_id\x18\x02 \x01(\x04\"\'\n\x13JoinCaptureResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"T\n\x0f\x43\x61ptureFinished\x12\x17\n\x0f\x66rames_captured\x18\x01 \x02(\x04\x12(\n\x04\x65xit\x18\x02 \x02(\x0e\x32\x1a.livekit.proto.CaptureExit\"L\n\x0c\x43\x61ptureError\x12\r\n\x05\x65rror\x18\x01 \x02(\t\x12-\n\x04kind\x18\x02 \x02(\x0e\x32\x1f.livekit.proto.CaptureErrorKind\"\x94\x01\n\x13JoinCaptureCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x32\n\x08\x66inished\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.CaptureFinishedH\x00\x12,\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x1b.livekit.proto.CaptureErrorH\x00\x42\t\n\x07message*W\n\x14GstreamerBitrateUnit\x12\x1e\n\x1aGSTREAMER_BITRATE_UNIT_BPS\x10\x00\x12\x1f\n\x1bGSTREAMER_BITRATE_UNIT_KBPS\x10\x01*1\n\x07Pattern\x12\x14\n\x10PATTERN_GRADIENT\x10\x00\x12\x10\n\x0cPATTERN_LOGO\x10\x01*I\n\x11\x43\x61ptureSourceKind\x12\x18\n\x14\x43\x41PTURE_SOURCE_PIXEL\x10\x00\x12\x1a\n\x16\x43\x41PTURE_SOURCE_ENCODED\x10\x01*G\n\x0b\x43\x61ptureExit\x12\x18\n\x14\x43\x41PTURE_EXIT_STOPPED\x10\x00\x12\x1e\n\x1a\x43\x41PTURE_EXIT_END_OF_STREAM\x10\x01*n\n\x10\x43\x61ptureErrorKind\x12\x1d\n\x19\x43\x41PTURE_ERROR_KIND_SOURCE\x10\x00\x12\x1a\n\x16\x43\x41PTURE_ERROR_KIND_RTC\x10\x01\x12\x1f\n\x1b\x43\x41PTURE_ERROR_KIND_PANICKED\x10\x02\x42\x10\xaa\x02\rLiveKit.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -25,16 +25,16 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_GSTREAMERBITRATEUNIT']._serialized_start=1975 - _globals['_GSTREAMERBITRATEUNIT']._serialized_end=2062 - _globals['_PATTERN']._serialized_start=2064 - _globals['_PATTERN']._serialized_end=2113 - _globals['_CAPTURESOURCEKIND']._serialized_start=2115 - _globals['_CAPTURESOURCEKIND']._serialized_end=2188 - _globals['_CAPTUREEXIT']._serialized_start=2190 - _globals['_CAPTUREEXIT']._serialized_end=2261 - _globals['_CAPTUREERRORKIND']._serialized_start=2263 - _globals['_CAPTUREERRORKIND']._serialized_end=2373 + _globals['_GSTREAMERBITRATEUNIT']._serialized_start=2083 + _globals['_GSTREAMERBITRATEUNIT']._serialized_end=2170 + _globals['_PATTERN']._serialized_start=2172 + _globals['_PATTERN']._serialized_end=2221 + _globals['_CAPTURESOURCEKIND']._serialized_start=2223 + _globals['_CAPTURESOURCEKIND']._serialized_end=2296 + _globals['_CAPTUREEXIT']._serialized_start=2298 + _globals['_CAPTUREEXIT']._serialized_end=2369 + _globals['_CAPTUREERRORKIND']._serialized_start=2371 + _globals['_CAPTUREERRORKIND']._serialized_end=2481 _globals['_GSTREAMERRATECONTROL']._serialized_start=77 _globals['_GSTREAMERRATECONTROL']._serialized_end=185 _globals['_GSTREAMERVIDEOSOURCECONFIG']._serialized_start=188 @@ -61,10 +61,14 @@ _globals['_STOPCAPTUREREQUEST']._serialized_end=1615 _globals['_STOPCAPTURERESPONSE']._serialized_start=1617 _globals['_STOPCAPTURERESPONSE']._serialized_end=1653 - _globals['_CAPTUREFINISHED']._serialized_start=1655 - _globals['_CAPTUREFINISHED']._serialized_end=1739 - _globals['_CAPTUREERROR']._serialized_start=1741 - _globals['_CAPTUREERROR']._serialized_end=1817 - _globals['_CAPTURESOURCEEVENT']._serialized_start=1820 - _globals['_CAPTURESOURCEEVENT']._serialized_end=1973 + _globals['_JOINCAPTUREREQUEST']._serialized_start=1655 + _globals['_JOINCAPTUREREQUEST']._serialized_end=1725 + _globals['_JOINCAPTURERESPONSE']._serialized_start=1727 + _globals['_JOINCAPTURERESPONSE']._serialized_end=1766 + _globals['_CAPTUREFINISHED']._serialized_start=1768 + _globals['_CAPTUREFINISHED']._serialized_end=1852 + _globals['_CAPTUREERROR']._serialized_start=1854 + _globals['_CAPTUREERROR']._serialized_end=1930 + _globals['_JOINCAPTURECALLBACK']._serialized_start=1933 + _globals['_JOINCAPTURECALLBACK']._serialized_end=2081 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/capture_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/capture_pb2.pyi index 2ba7a8aad..379018858 100644 --- a/livekit-rtc/livekit/rtc/_proto/capture_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/capture_pb2.pyi @@ -56,8 +56,9 @@ class GstreamerBitrateUnit(_GstreamerBitrateUnit, metaclass=_GstreamerBitrateUni embeds an OwnedVideoSource for the existing CreateVideoTrackRequest and the recommended TrackPublishOptions for PublishTrackRequest. 2. StartCaptureRequest: starts pumping frames into the RTC source. - 3. The capture runs until StopCaptureRequest, end of stream, or an error; - a CaptureSourceEvent is delivered exactly once when it ends. + 3. StopCaptureRequest signals the pump to stop without waiting. + 4. JoinCaptureRequest consumes the running pump and completes asynchronously + after its thread exits, returning its terminal result. Bitrate unit expected by a GStreamer encoder property. """ @@ -456,9 +457,8 @@ global___StartCaptureResponse = StartCaptureResponse @typing.final class StopCaptureRequest(google.protobuf.message.Message): - """Signal a running capture to stop after the frame in flight. The terminal - CaptureSourceEvent follows shortly. Stopping an already-finished capture - is a no-op. + """Signal a running capture to stop after the frame in flight without waiting + for its thread to exit. Stopping an already-finished capture is a no-op. """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -491,6 +491,45 @@ class StopCaptureResponse(google.protobuf.message.Message): global___StopCaptureResponse = StopCaptureResponse +@typing.final +class JoinCaptureRequest(google.protobuf.message.Message): + """Consume a running capture and wait asynchronously for its pump thread to + exit. This does not signal the capture to stop. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CAPTURE_HANDLE_FIELD_NUMBER: builtins.int + REQUEST_ASYNC_ID_FIELD_NUMBER: builtins.int + capture_handle: builtins.int + request_async_id: builtins.int + def __init__( + self, + *, + capture_handle: builtins.int | None = ..., + request_async_id: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["capture_handle", b"capture_handle", "request_async_id", b"request_async_id"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["capture_handle", b"capture_handle", "request_async_id", b"request_async_id"]) -> None: ... + +global___JoinCaptureRequest = JoinCaptureRequest + +@typing.final +class JoinCaptureResponse(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___JoinCaptureResponse = JoinCaptureResponse + @typing.final class CaptureFinished(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -530,17 +569,15 @@ class CaptureError(google.protobuf.message.Message): global___CaptureError = CaptureError @typing.final -class CaptureSourceEvent(google.protobuf.message.Message): - """Delivered exactly once when a started capture ends, regardless of why - (stop request, end of stream, or failure). - """ +class JoinCaptureCallback(google.protobuf.message.Message): + """Completes JoinCaptureRequest with the pump's terminal result.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor - CAPTURE_HANDLE_FIELD_NUMBER: builtins.int + ASYNC_ID_FIELD_NUMBER: builtins.int FINISHED_FIELD_NUMBER: builtins.int ERROR_FIELD_NUMBER: builtins.int - capture_handle: builtins.int + async_id: builtins.int @property def finished(self) -> global___CaptureFinished: ... @property @@ -548,12 +585,12 @@ class CaptureSourceEvent(google.protobuf.message.Message): def __init__( self, *, - capture_handle: builtins.int | None = ..., + async_id: builtins.int | None = ..., finished: global___CaptureFinished | None = ..., error: global___CaptureError | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["capture_handle", b"capture_handle", "error", b"error", "finished", b"finished", "message", b"message"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["capture_handle", b"capture_handle", "error", b"error", "finished", b"finished", "message", b"message"]) -> None: ... + def HasField(self, field_name: typing.Literal["async_id", b"async_id", "error", b"error", "finished", b"finished", "message", b"message"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["async_id", b"async_id", "error", b"error", "finished", b"finished", "message", b"message"]) -> None: ... def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.Literal["finished", "error"] | None: ... -global___CaptureSourceEvent = CaptureSourceEvent +global___JoinCaptureCallback = JoinCaptureCallback diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index 1cfcdc301..2a091e2cd 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -24,7 +24,7 @@ from . import video_frame_pb2 as video__frame__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\x11\x61udio_frame.proto\x1a\x11\x64\x61ta_stream.proto\x1a\x10\x64\x61ta_track.proto\x1a\rcapture.proto\x1a\ne2ee.proto\x1a\nroom.proto\x1a\trpc.proto\x1a\x0btrack.proto\x1a\x17track_publication.proto\x1a\x11video_frame.proto\"\xa0\x33\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\x63\n\"set_track_subscription_permissions\x18\x30 \x01(\x0b\x32\x35.livekit.proto.SetTrackSubscriptionPermissionsRequestH\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\x31 \x01(\x0b\x32+.livekit.proto.LoadAudioFilterPluginRequestH\x00\x12/\n\x07new_apm\x18\x32 \x01(\x0b\x32\x1c.livekit.proto.NewApmRequestH\x00\x12\x44\n\x12\x61pm_process_stream\x18\x33 \x01(\x0b\x32&.livekit.proto.ApmProcessStreamRequestH\x00\x12S\n\x1a\x61pm_process_reverse_stream\x18\x34 \x01(\x0b\x32-.livekit.proto.ApmProcessReverseStreamRequestH\x00\x12G\n\x14\x61pm_set_stream_delay\x18\x35 \x01(\x0b\x32\'.livekit.proto.ApmSetStreamDelayRequestH\x00\x12V\n\x15\x62yte_read_incremental\x18\x36 \x01(\x0b\x32\x35.livekit.proto.ByteStreamReaderReadIncrementalRequestH\x00\x12\x46\n\rbyte_read_all\x18\x37 \x01(\x0b\x32-.livekit.proto.ByteStreamReaderReadAllRequestH\x00\x12O\n\x12\x62yte_write_to_file\x18\x38 \x01(\x0b\x32\x31.livekit.proto.ByteStreamReaderWriteToFileRequestH\x00\x12V\n\x15text_read_incremental\x18\x39 \x01(\x0b\x32\x35.livekit.proto.TextStreamReaderReadIncrementalRequestH\x00\x12\x46\n\rtext_read_all\x18: \x01(\x0b\x32-.livekit.proto.TextStreamReaderReadAllRequestH\x00\x12\x39\n\tsend_file\x18; \x01(\x0b\x32$.livekit.proto.StreamSendFileRequestH\x00\x12\x39\n\tsend_text\x18< \x01(\x0b\x32$.livekit.proto.StreamSendTextRequestH\x00\x12@\n\x10\x62yte_stream_open\x18= \x01(\x0b\x32$.livekit.proto.ByteStreamOpenRequestH\x00\x12H\n\x11\x62yte_stream_write\x18> \x01(\x0b\x32+.livekit.proto.ByteStreamWriterWriteRequestH\x00\x12H\n\x11\x62yte_stream_close\x18? \x01(\x0b\x32+.livekit.proto.ByteStreamWriterCloseRequestH\x00\x12@\n\x10text_stream_open\x18@ \x01(\x0b\x32$.livekit.proto.TextStreamOpenRequestH\x00\x12H\n\x11text_stream_write\x18\x41 \x01(\x0b\x32+.livekit.proto.TextStreamWriterWriteRequestH\x00\x12H\n\x11text_stream_close\x18\x42 \x01(\x0b\x32+.livekit.proto.TextStreamWriterCloseRequestH\x00\x12;\n\nsend_bytes\x18\x43 \x01(\x0b\x32%.livekit.proto.StreamSendBytesRequestH\x00\x12\x66\n$set_remote_track_publication_quality\x18\x44 \x01(\x0b\x32\x36.livekit.proto.SetRemoteTrackPublicationQualityRequestH\x00\x12\x44\n\x12publish_data_track\x18\x45 \x01(\x0b\x32&.livekit.proto.PublishDataTrackRequestH\x00\x12P\n\x19local_data_track_try_push\x18\x46 \x01(\x0b\x32+.livekit.proto.LocalDataTrackTryPushRequestH\x00\x12S\n\x1alocal_data_track_unpublish\x18G \x01(\x0b\x32-.livekit.proto.LocalDataTrackUnpublishRequestH\x00\x12X\n\x1dlocal_data_track_is_published\x18H \x01(\x0b\x32/.livekit.proto.LocalDataTrackIsPublishedRequestH\x00\x12H\n\x14subscribe_data_track\x18I \x01(\x0b\x32(.livekit.proto.SubscribeDataTrackRequestH\x00\x12Z\n\x1eremote_data_track_is_published\x18J \x01(\x0b\x32\x30.livekit.proto.RemoteDataTrackIsPublishedRequestH\x00\x12K\n\x16\x64\x61ta_track_stream_read\x18K \x01(\x0b\x32).livekit.proto.DataTrackStreamReadRequestH\x00\x12i\n&remote_data_track_set_pipeline_options\x18T \x01(\x0b\x32\x37.livekit.proto.RemoteDataTrackSetPipelineOptionsRequestH\x00\x12;\n\rdefine_schema\x18U \x01(\x0b\x32\".livekit.proto.DefineSchemaRequestH\x00\x12\x35\n\nget_schema\x18V \x01(\x0b\x32\x1f.livekit.proto.GetSchemaRequestH\x00\x12U\n\x1b\x63\x61pture_encoded_video_frame\x18W \x01(\x0b\x32..livekit.proto.CaptureEncodedVideoFrameRequestH\x00\x12\x62\n\"take_encoded_video_source_feedback\x18X \x01(\x0b\x32\x34.livekit.proto.TakeEncodedVideoSourceFeedbackRequestH\x00\x12\x43\n\x11simulate_scenario\x18L \x01(\x0b\x32&.livekit.proto.SimulateScenarioRequestH\x00\x12\x44\n\x12new_platform_audio\x18M \x01(\x0b\x32&.livekit.proto.NewPlatformAudioRequestH\x00\x12\x42\n\x11get_audio_devices\x18N \x01(\x0b\x32%.livekit.proto.GetAudioDevicesRequestH\x00\x12H\n\x14set_recording_device\x18O \x01(\x0b\x32(.livekit.proto.SetRecordingDeviceRequestH\x00\x12\x44\n\x12set_playout_device\x18P \x01(\x0b\x32&.livekit.proto.SetPlayoutDeviceRequestH\x00\x12?\n\x0fstart_recording\x18Q \x01(\x0b\x32$.livekit.proto.StartRecordingRequestH\x00\x12=\n\x0estop_recording\x18R \x01(\x0b\x32#.livekit.proto.StopRecordingRequestH\x00\x12G\n\x14ready_for_room_event\x18S \x01(\x0b\x32\'.livekit.proto.ReadyForRoomEventRequestH\x00\x12\x44\n\x12new_capture_source\x18[ \x01(\x0b\x32&.livekit.proto.NewCaptureSourceRequestH\x00\x12;\n\rstart_capture\x18Y \x01(\x0b\x32\".livekit.proto.StartCaptureRequestH\x00\x12\x39\n\x0cstop_capture\x18Z \x01(\x0b\x32!.livekit.proto.StopCaptureRequestH\x00\x42\t\n\x07message\"\xb6\x33\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\x64\n\"set_track_subscription_permissions\x18/ \x01(\x0b\x32\x36.livekit.proto.SetTrackSubscriptionPermissionsResponseH\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\x30 \x01(\x0b\x32,.livekit.proto.LoadAudioFilterPluginResponseH\x00\x12\x30\n\x07new_apm\x18\x31 \x01(\x0b\x32\x1d.livekit.proto.NewApmResponseH\x00\x12\x45\n\x12\x61pm_process_stream\x18\x32 \x01(\x0b\x32\'.livekit.proto.ApmProcessStreamResponseH\x00\x12T\n\x1a\x61pm_process_reverse_stream\x18\x33 \x01(\x0b\x32..livekit.proto.ApmProcessReverseStreamResponseH\x00\x12H\n\x14\x61pm_set_stream_delay\x18\x34 \x01(\x0b\x32(.livekit.proto.ApmSetStreamDelayResponseH\x00\x12W\n\x15\x62yte_read_incremental\x18\x35 \x01(\x0b\x32\x36.livekit.proto.ByteStreamReaderReadIncrementalResponseH\x00\x12G\n\rbyte_read_all\x18\x36 \x01(\x0b\x32..livekit.proto.ByteStreamReaderReadAllResponseH\x00\x12P\n\x12\x62yte_write_to_file\x18\x37 \x01(\x0b\x32\x32.livekit.proto.ByteStreamReaderWriteToFileResponseH\x00\x12W\n\x15text_read_incremental\x18\x38 \x01(\x0b\x32\x36.livekit.proto.TextStreamReaderReadIncrementalResponseH\x00\x12G\n\rtext_read_all\x18\x39 \x01(\x0b\x32..livekit.proto.TextStreamReaderReadAllResponseH\x00\x12:\n\tsend_file\x18: \x01(\x0b\x32%.livekit.proto.StreamSendFileResponseH\x00\x12:\n\tsend_text\x18; \x01(\x0b\x32%.livekit.proto.StreamSendTextResponseH\x00\x12\x41\n\x10\x62yte_stream_open\x18< \x01(\x0b\x32%.livekit.proto.ByteStreamOpenResponseH\x00\x12I\n\x11\x62yte_stream_write\x18= \x01(\x0b\x32,.livekit.proto.ByteStreamWriterWriteResponseH\x00\x12I\n\x11\x62yte_stream_close\x18> \x01(\x0b\x32,.livekit.proto.ByteStreamWriterCloseResponseH\x00\x12\x41\n\x10text_stream_open\x18? \x01(\x0b\x32%.livekit.proto.TextStreamOpenResponseH\x00\x12I\n\x11text_stream_write\x18@ \x01(\x0b\x32,.livekit.proto.TextStreamWriterWriteResponseH\x00\x12I\n\x11text_stream_close\x18\x41 \x01(\x0b\x32,.livekit.proto.TextStreamWriterCloseResponseH\x00\x12<\n\nsend_bytes\x18\x42 \x01(\x0b\x32&.livekit.proto.StreamSendBytesResponseH\x00\x12g\n$set_remote_track_publication_quality\x18\x43 \x01(\x0b\x32\x37.livekit.proto.SetRemoteTrackPublicationQualityResponseH\x00\x12\x45\n\x12publish_data_track\x18\x44 \x01(\x0b\x32\'.livekit.proto.PublishDataTrackResponseH\x00\x12Q\n\x19local_data_track_try_push\x18\x45 \x01(\x0b\x32,.livekit.proto.LocalDataTrackTryPushResponseH\x00\x12T\n\x1alocal_data_track_unpublish\x18\x46 \x01(\x0b\x32..livekit.proto.LocalDataTrackUnpublishResponseH\x00\x12Y\n\x1dlocal_data_track_is_published\x18G \x01(\x0b\x32\x30.livekit.proto.LocalDataTrackIsPublishedResponseH\x00\x12I\n\x14subscribe_data_track\x18H \x01(\x0b\x32).livekit.proto.SubscribeDataTrackResponseH\x00\x12[\n\x1eremote_data_track_is_published\x18I \x01(\x0b\x32\x31.livekit.proto.RemoteDataTrackIsPublishedResponseH\x00\x12L\n\x16\x64\x61ta_track_stream_read\x18J \x01(\x0b\x32*.livekit.proto.DataTrackStreamReadResponseH\x00\x12j\n&remote_data_track_set_pipeline_options\x18T \x01(\x0b\x32\x38.livekit.proto.RemoteDataTrackSetPipelineOptionsResponseH\x00\x12<\n\rdefine_schema\x18U \x01(\x0b\x32#.livekit.proto.DefineSchemaResponseH\x00\x12\x36\n\nget_schema\x18V \x01(\x0b\x32 .livekit.proto.GetSchemaResponseH\x00\x12V\n\x1b\x63\x61pture_encoded_video_frame\x18W \x01(\x0b\x32/.livekit.proto.CaptureEncodedVideoFrameResponseH\x00\x12\x63\n\"take_encoded_video_source_feedback\x18X \x01(\x0b\x32\x35.livekit.proto.TakeEncodedVideoSourceFeedbackResponseH\x00\x12\x44\n\x11simulate_scenario\x18K \x01(\x0b\x32\'.livekit.proto.SimulateScenarioResponseH\x00\x12\x45\n\x12new_platform_audio\x18L \x01(\x0b\x32\'.livekit.proto.NewPlatformAudioResponseH\x00\x12\x43\n\x11get_audio_devices\x18M \x01(\x0b\x32&.livekit.proto.GetAudioDevicesResponseH\x00\x12I\n\x14set_recording_device\x18N \x01(\x0b\x32).livekit.proto.SetRecordingDeviceResponseH\x00\x12\x45\n\x12set_playout_device\x18O \x01(\x0b\x32\'.livekit.proto.SetPlayoutDeviceResponseH\x00\x12@\n\x0fstart_recording\x18P \x01(\x0b\x32%.livekit.proto.StartRecordingResponseH\x00\x12>\n\x0estop_recording\x18Q \x01(\x0b\x32$.livekit.proto.StopRecordingResponseH\x00\x12H\n\x14ready_for_room_event\x18R \x01(\x0b\x32(.livekit.proto.ReadyForRoomEventResponseH\x00\x12\x45\n\x12new_capture_source\x18[ \x01(\x0b\x32\'.livekit.proto.NewCaptureSourceResponseH\x00\x12<\n\rstart_capture\x18Y \x01(\x0b\x32#.livekit.proto.StartCaptureResponseH\x00\x12:\n\x0cstop_capture\x18Z \x01(\x0b\x32\".livekit.proto.StopCaptureResponseH\x00\x42\t\n\x07message\"\xda\x18\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\x12H\n\x18\x62yte_stream_reader_event\x18\x1c \x01(\x0b\x32$.livekit.proto.ByteStreamReaderEventH\x00\x12U\n\x1b\x62yte_stream_reader_read_all\x18\x1d \x01(\x0b\x32..livekit.proto.ByteStreamReaderReadAllCallbackH\x00\x12^\n byte_stream_reader_write_to_file\x18\x1e \x01(\x0b\x32\x32.livekit.proto.ByteStreamReaderWriteToFileCallbackH\x00\x12\x41\n\x10\x62yte_stream_open\x18\x1f \x01(\x0b\x32%.livekit.proto.ByteStreamOpenCallbackH\x00\x12P\n\x18\x62yte_stream_writer_write\x18 \x01(\x0b\x32,.livekit.proto.ByteStreamWriterWriteCallbackH\x00\x12P\n\x18\x62yte_stream_writer_close\x18! \x01(\x0b\x32,.livekit.proto.ByteStreamWriterCloseCallbackH\x00\x12:\n\tsend_file\x18\" \x01(\x0b\x32%.livekit.proto.StreamSendFileCallbackH\x00\x12H\n\x18text_stream_reader_event\x18# \x01(\x0b\x32$.livekit.proto.TextStreamReaderEventH\x00\x12U\n\x1btext_stream_reader_read_all\x18$ \x01(\x0b\x32..livekit.proto.TextStreamReaderReadAllCallbackH\x00\x12\x41\n\x10text_stream_open\x18% \x01(\x0b\x32%.livekit.proto.TextStreamOpenCallbackH\x00\x12P\n\x18text_stream_writer_write\x18& \x01(\x0b\x32,.livekit.proto.TextStreamWriterWriteCallbackH\x00\x12P\n\x18text_stream_writer_close\x18\' \x01(\x0b\x32,.livekit.proto.TextStreamWriterCloseCallbackH\x00\x12:\n\tsend_text\x18( \x01(\x0b\x32%.livekit.proto.StreamSendTextCallbackH\x00\x12<\n\nsend_bytes\x18) \x01(\x0b\x32&.livekit.proto.StreamSendBytesCallbackH\x00\x12\x45\n\x12publish_data_track\x18* \x01(\x0b\x32\'.livekit.proto.PublishDataTrackCallbackH\x00\x12\x46\n\x17\x64\x61ta_track_stream_event\x18+ \x01(\x0b\x32#.livekit.proto.DataTrackStreamEventH\x00\x12\x44\n\x11simulate_scenario\x18, \x01(\x0b\x32\'.livekit.proto.SimulateScenarioCallbackH\x00\x12<\n\rdefine_schema\x18- \x01(\x0b\x32#.livekit.proto.DefineSchemaCallbackH\x00\x12\x36\n\nget_schema\x18. \x01(\x0b\x32 .livekit.proto.GetSchemaCallbackH\x00\x12\x45\n\x12new_capture_source\x18/ \x01(\x0b\x32\'.livekit.proto.NewCaptureSourceCallbackH\x00\x12\x41\n\x14\x63\x61pture_source_event\x18\x30 \x01(\x0b\x32!.livekit.proto.CaptureSourceEventH\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\x11\x61udio_frame.proto\x1a\x11\x64\x61ta_stream.proto\x1a\x10\x64\x61ta_track.proto\x1a\rcapture.proto\x1a\ne2ee.proto\x1a\nroom.proto\x1a\trpc.proto\x1a\x0btrack.proto\x1a\x17track_publication.proto\x1a\x11video_frame.proto\"\xe3\x34\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\x63\n\"set_track_subscription_permissions\x18\x30 \x01(\x0b\x32\x35.livekit.proto.SetTrackSubscriptionPermissionsRequestH\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\x31 \x01(\x0b\x32+.livekit.proto.LoadAudioFilterPluginRequestH\x00\x12/\n\x07new_apm\x18\x32 \x01(\x0b\x32\x1c.livekit.proto.NewApmRequestH\x00\x12\x44\n\x12\x61pm_process_stream\x18\x33 \x01(\x0b\x32&.livekit.proto.ApmProcessStreamRequestH\x00\x12S\n\x1a\x61pm_process_reverse_stream\x18\x34 \x01(\x0b\x32-.livekit.proto.ApmProcessReverseStreamRequestH\x00\x12G\n\x14\x61pm_set_stream_delay\x18\x35 \x01(\x0b\x32\'.livekit.proto.ApmSetStreamDelayRequestH\x00\x12V\n\x15\x62yte_read_incremental\x18\x36 \x01(\x0b\x32\x35.livekit.proto.ByteStreamReaderReadIncrementalRequestH\x00\x12\x46\n\rbyte_read_all\x18\x37 \x01(\x0b\x32-.livekit.proto.ByteStreamReaderReadAllRequestH\x00\x12O\n\x12\x62yte_write_to_file\x18\x38 \x01(\x0b\x32\x31.livekit.proto.ByteStreamReaderWriteToFileRequestH\x00\x12V\n\x15text_read_incremental\x18\x39 \x01(\x0b\x32\x35.livekit.proto.TextStreamReaderReadIncrementalRequestH\x00\x12\x46\n\rtext_read_all\x18: \x01(\x0b\x32-.livekit.proto.TextStreamReaderReadAllRequestH\x00\x12\x39\n\tsend_file\x18; \x01(\x0b\x32$.livekit.proto.StreamSendFileRequestH\x00\x12\x39\n\tsend_text\x18< \x01(\x0b\x32$.livekit.proto.StreamSendTextRequestH\x00\x12@\n\x10\x62yte_stream_open\x18= \x01(\x0b\x32$.livekit.proto.ByteStreamOpenRequestH\x00\x12H\n\x11\x62yte_stream_write\x18> \x01(\x0b\x32+.livekit.proto.ByteStreamWriterWriteRequestH\x00\x12H\n\x11\x62yte_stream_close\x18? \x01(\x0b\x32+.livekit.proto.ByteStreamWriterCloseRequestH\x00\x12@\n\x10text_stream_open\x18@ \x01(\x0b\x32$.livekit.proto.TextStreamOpenRequestH\x00\x12H\n\x11text_stream_write\x18\x41 \x01(\x0b\x32+.livekit.proto.TextStreamWriterWriteRequestH\x00\x12H\n\x11text_stream_close\x18\x42 \x01(\x0b\x32+.livekit.proto.TextStreamWriterCloseRequestH\x00\x12;\n\nsend_bytes\x18\x43 \x01(\x0b\x32%.livekit.proto.StreamSendBytesRequestH\x00\x12\x66\n$set_remote_track_publication_quality\x18\x44 \x01(\x0b\x32\x36.livekit.proto.SetRemoteTrackPublicationQualityRequestH\x00\x12\x44\n\x12publish_data_track\x18\x45 \x01(\x0b\x32&.livekit.proto.PublishDataTrackRequestH\x00\x12P\n\x19local_data_track_try_push\x18\x46 \x01(\x0b\x32+.livekit.proto.LocalDataTrackTryPushRequestH\x00\x12S\n\x1alocal_data_track_unpublish\x18G \x01(\x0b\x32-.livekit.proto.LocalDataTrackUnpublishRequestH\x00\x12X\n\x1dlocal_data_track_is_published\x18H \x01(\x0b\x32/.livekit.proto.LocalDataTrackIsPublishedRequestH\x00\x12H\n\x14subscribe_data_track\x18I \x01(\x0b\x32(.livekit.proto.SubscribeDataTrackRequestH\x00\x12Z\n\x1eremote_data_track_is_published\x18J \x01(\x0b\x32\x30.livekit.proto.RemoteDataTrackIsPublishedRequestH\x00\x12K\n\x16\x64\x61ta_track_stream_read\x18K \x01(\x0b\x32).livekit.proto.DataTrackStreamReadRequestH\x00\x12i\n&remote_data_track_set_pipeline_options\x18T \x01(\x0b\x32\x37.livekit.proto.RemoteDataTrackSetPipelineOptionsRequestH\x00\x12;\n\rdefine_schema\x18U \x01(\x0b\x32\".livekit.proto.DefineSchemaRequestH\x00\x12\x35\n\nget_schema\x18V \x01(\x0b\x32\x1f.livekit.proto.GetSchemaRequestH\x00\x12U\n\x1b\x63\x61pture_encoded_video_frame\x18W \x01(\x0b\x32..livekit.proto.CaptureEncodedVideoFrameRequestH\x00\x12\x62\n\"take_encoded_video_source_feedback\x18X \x01(\x0b\x32\x34.livekit.proto.TakeEncodedVideoSourceFeedbackRequestH\x00\x12\x43\n\x11simulate_scenario\x18L \x01(\x0b\x32&.livekit.proto.SimulateScenarioRequestH\x00\x12\x44\n\x12new_platform_audio\x18M \x01(\x0b\x32&.livekit.proto.NewPlatformAudioRequestH\x00\x12\x42\n\x11get_audio_devices\x18N \x01(\x0b\x32%.livekit.proto.GetAudioDevicesRequestH\x00\x12H\n\x14set_recording_device\x18O \x01(\x0b\x32(.livekit.proto.SetRecordingDeviceRequestH\x00\x12\x44\n\x12set_playout_device\x18P \x01(\x0b\x32&.livekit.proto.SetPlayoutDeviceRequestH\x00\x12?\n\x0fstart_recording\x18Q \x01(\x0b\x32$.livekit.proto.StartRecordingRequestH\x00\x12=\n\x0estop_recording\x18R \x01(\x0b\x32#.livekit.proto.StopRecordingRequestH\x00\x12G\n\x14ready_for_room_event\x18S \x01(\x0b\x32\'.livekit.proto.ReadyForRoomEventRequestH\x00\x12\x44\n\x12new_capture_source\x18[ \x01(\x0b\x32&.livekit.proto.NewCaptureSourceRequestH\x00\x12;\n\rstart_capture\x18Y \x01(\x0b\x32\".livekit.proto.StartCaptureRequestH\x00\x12\x39\n\x0cstop_capture\x18Z \x01(\x0b\x32!.livekit.proto.StopCaptureRequestH\x00\x12\x39\n\x0cjoin_capture\x18\\ \x01(\x0b\x32!.livekit.proto.JoinCaptureRequestH\x00\x12\x30\n\x07prewarm\x18] \x01(\x0b\x32\x1d.livekit.proto.PrewarmRequestH\x00\x12T\n\x1aprewarmed_connection_alive\x18^ \x01(\x0b\x32..livekit.proto.PrewarmedConnectionAliveRequestH\x00\x42\t\n\x07message\"\xfc\x34\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\x64\n\"set_track_subscription_permissions\x18/ \x01(\x0b\x32\x36.livekit.proto.SetTrackSubscriptionPermissionsResponseH\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\x30 \x01(\x0b\x32,.livekit.proto.LoadAudioFilterPluginResponseH\x00\x12\x30\n\x07new_apm\x18\x31 \x01(\x0b\x32\x1d.livekit.proto.NewApmResponseH\x00\x12\x45\n\x12\x61pm_process_stream\x18\x32 \x01(\x0b\x32\'.livekit.proto.ApmProcessStreamResponseH\x00\x12T\n\x1a\x61pm_process_reverse_stream\x18\x33 \x01(\x0b\x32..livekit.proto.ApmProcessReverseStreamResponseH\x00\x12H\n\x14\x61pm_set_stream_delay\x18\x34 \x01(\x0b\x32(.livekit.proto.ApmSetStreamDelayResponseH\x00\x12W\n\x15\x62yte_read_incremental\x18\x35 \x01(\x0b\x32\x36.livekit.proto.ByteStreamReaderReadIncrementalResponseH\x00\x12G\n\rbyte_read_all\x18\x36 \x01(\x0b\x32..livekit.proto.ByteStreamReaderReadAllResponseH\x00\x12P\n\x12\x62yte_write_to_file\x18\x37 \x01(\x0b\x32\x32.livekit.proto.ByteStreamReaderWriteToFileResponseH\x00\x12W\n\x15text_read_incremental\x18\x38 \x01(\x0b\x32\x36.livekit.proto.TextStreamReaderReadIncrementalResponseH\x00\x12G\n\rtext_read_all\x18\x39 \x01(\x0b\x32..livekit.proto.TextStreamReaderReadAllResponseH\x00\x12:\n\tsend_file\x18: \x01(\x0b\x32%.livekit.proto.StreamSendFileResponseH\x00\x12:\n\tsend_text\x18; \x01(\x0b\x32%.livekit.proto.StreamSendTextResponseH\x00\x12\x41\n\x10\x62yte_stream_open\x18< \x01(\x0b\x32%.livekit.proto.ByteStreamOpenResponseH\x00\x12I\n\x11\x62yte_stream_write\x18= \x01(\x0b\x32,.livekit.proto.ByteStreamWriterWriteResponseH\x00\x12I\n\x11\x62yte_stream_close\x18> \x01(\x0b\x32,.livekit.proto.ByteStreamWriterCloseResponseH\x00\x12\x41\n\x10text_stream_open\x18? \x01(\x0b\x32%.livekit.proto.TextStreamOpenResponseH\x00\x12I\n\x11text_stream_write\x18@ \x01(\x0b\x32,.livekit.proto.TextStreamWriterWriteResponseH\x00\x12I\n\x11text_stream_close\x18\x41 \x01(\x0b\x32,.livekit.proto.TextStreamWriterCloseResponseH\x00\x12<\n\nsend_bytes\x18\x42 \x01(\x0b\x32&.livekit.proto.StreamSendBytesResponseH\x00\x12g\n$set_remote_track_publication_quality\x18\x43 \x01(\x0b\x32\x37.livekit.proto.SetRemoteTrackPublicationQualityResponseH\x00\x12\x45\n\x12publish_data_track\x18\x44 \x01(\x0b\x32\'.livekit.proto.PublishDataTrackResponseH\x00\x12Q\n\x19local_data_track_try_push\x18\x45 \x01(\x0b\x32,.livekit.proto.LocalDataTrackTryPushResponseH\x00\x12T\n\x1alocal_data_track_unpublish\x18\x46 \x01(\x0b\x32..livekit.proto.LocalDataTrackUnpublishResponseH\x00\x12Y\n\x1dlocal_data_track_is_published\x18G \x01(\x0b\x32\x30.livekit.proto.LocalDataTrackIsPublishedResponseH\x00\x12I\n\x14subscribe_data_track\x18H \x01(\x0b\x32).livekit.proto.SubscribeDataTrackResponseH\x00\x12[\n\x1eremote_data_track_is_published\x18I \x01(\x0b\x32\x31.livekit.proto.RemoteDataTrackIsPublishedResponseH\x00\x12L\n\x16\x64\x61ta_track_stream_read\x18J \x01(\x0b\x32*.livekit.proto.DataTrackStreamReadResponseH\x00\x12j\n&remote_data_track_set_pipeline_options\x18T \x01(\x0b\x32\x38.livekit.proto.RemoteDataTrackSetPipelineOptionsResponseH\x00\x12<\n\rdefine_schema\x18U \x01(\x0b\x32#.livekit.proto.DefineSchemaResponseH\x00\x12\x36\n\nget_schema\x18V \x01(\x0b\x32 .livekit.proto.GetSchemaResponseH\x00\x12V\n\x1b\x63\x61pture_encoded_video_frame\x18W \x01(\x0b\x32/.livekit.proto.CaptureEncodedVideoFrameResponseH\x00\x12\x63\n\"take_encoded_video_source_feedback\x18X \x01(\x0b\x32\x35.livekit.proto.TakeEncodedVideoSourceFeedbackResponseH\x00\x12\x44\n\x11simulate_scenario\x18K \x01(\x0b\x32\'.livekit.proto.SimulateScenarioResponseH\x00\x12\x45\n\x12new_platform_audio\x18L \x01(\x0b\x32\'.livekit.proto.NewPlatformAudioResponseH\x00\x12\x43\n\x11get_audio_devices\x18M \x01(\x0b\x32&.livekit.proto.GetAudioDevicesResponseH\x00\x12I\n\x14set_recording_device\x18N \x01(\x0b\x32).livekit.proto.SetRecordingDeviceResponseH\x00\x12\x45\n\x12set_playout_device\x18O \x01(\x0b\x32\'.livekit.proto.SetPlayoutDeviceResponseH\x00\x12@\n\x0fstart_recording\x18P \x01(\x0b\x32%.livekit.proto.StartRecordingResponseH\x00\x12>\n\x0estop_recording\x18Q \x01(\x0b\x32$.livekit.proto.StopRecordingResponseH\x00\x12H\n\x14ready_for_room_event\x18R \x01(\x0b\x32(.livekit.proto.ReadyForRoomEventResponseH\x00\x12\x45\n\x12new_capture_source\x18[ \x01(\x0b\x32\'.livekit.proto.NewCaptureSourceResponseH\x00\x12<\n\rstart_capture\x18Y \x01(\x0b\x32#.livekit.proto.StartCaptureResponseH\x00\x12:\n\x0cstop_capture\x18Z \x01(\x0b\x32\".livekit.proto.StopCaptureResponseH\x00\x12:\n\x0cjoin_capture\x18\\ \x01(\x0b\x32\".livekit.proto.JoinCaptureResponseH\x00\x12\x31\n\x07prewarm\x18] \x01(\x0b\x32\x1e.livekit.proto.PrewarmResponseH\x00\x12U\n\x1aprewarmed_connection_alive\x18^ \x01(\x0b\x32/.livekit.proto.PrewarmedConnectionAliveResponseH\x00\x42\t\n\x07message\"\x8c\x19\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\x12H\n\x18\x62yte_stream_reader_event\x18\x1c \x01(\x0b\x32$.livekit.proto.ByteStreamReaderEventH\x00\x12U\n\x1b\x62yte_stream_reader_read_all\x18\x1d \x01(\x0b\x32..livekit.proto.ByteStreamReaderReadAllCallbackH\x00\x12^\n byte_stream_reader_write_to_file\x18\x1e \x01(\x0b\x32\x32.livekit.proto.ByteStreamReaderWriteToFileCallbackH\x00\x12\x41\n\x10\x62yte_stream_open\x18\x1f \x01(\x0b\x32%.livekit.proto.ByteStreamOpenCallbackH\x00\x12P\n\x18\x62yte_stream_writer_write\x18 \x01(\x0b\x32,.livekit.proto.ByteStreamWriterWriteCallbackH\x00\x12P\n\x18\x62yte_stream_writer_close\x18! \x01(\x0b\x32,.livekit.proto.ByteStreamWriterCloseCallbackH\x00\x12:\n\tsend_file\x18\" \x01(\x0b\x32%.livekit.proto.StreamSendFileCallbackH\x00\x12H\n\x18text_stream_reader_event\x18# \x01(\x0b\x32$.livekit.proto.TextStreamReaderEventH\x00\x12U\n\x1btext_stream_reader_read_all\x18$ \x01(\x0b\x32..livekit.proto.TextStreamReaderReadAllCallbackH\x00\x12\x41\n\x10text_stream_open\x18% \x01(\x0b\x32%.livekit.proto.TextStreamOpenCallbackH\x00\x12P\n\x18text_stream_writer_write\x18& \x01(\x0b\x32,.livekit.proto.TextStreamWriterWriteCallbackH\x00\x12P\n\x18text_stream_writer_close\x18\' \x01(\x0b\x32,.livekit.proto.TextStreamWriterCloseCallbackH\x00\x12:\n\tsend_text\x18( \x01(\x0b\x32%.livekit.proto.StreamSendTextCallbackH\x00\x12<\n\nsend_bytes\x18) \x01(\x0b\x32&.livekit.proto.StreamSendBytesCallbackH\x00\x12\x45\n\x12publish_data_track\x18* \x01(\x0b\x32\'.livekit.proto.PublishDataTrackCallbackH\x00\x12\x46\n\x17\x64\x61ta_track_stream_event\x18+ \x01(\x0b\x32#.livekit.proto.DataTrackStreamEventH\x00\x12\x44\n\x11simulate_scenario\x18, \x01(\x0b\x32\'.livekit.proto.SimulateScenarioCallbackH\x00\x12<\n\rdefine_schema\x18- \x01(\x0b\x32#.livekit.proto.DefineSchemaCallbackH\x00\x12\x36\n\nget_schema\x18. \x01(\x0b\x32 .livekit.proto.GetSchemaCallbackH\x00\x12\x45\n\x12new_capture_source\x18/ \x01(\x0b\x32\'.livekit.proto.NewCaptureSourceCallbackH\x00\x12:\n\x0cjoin_capture\x18\x31 \x01(\x0b\x32\".livekit.proto.JoinCaptureCallbackH\x00\x12\x31\n\x07prewarm\x18\x32 \x01(\x0b\x32\x1e.livekit.proto.PrewarmCallbackH\x00\x42\t\n\x07messageJ\x04\x08\x30\x10\x31\"\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) @@ -32,24 +32,24 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_LOGLEVEL']._serialized_start=16828 - _globals['_LOGLEVEL']._serialized_end=16911 + _globals['_LOGLEVEL']._serialized_start=17271 + _globals['_LOGLEVEL']._serialized_end=17354 _globals['_FFIREQUEST']._serialized_start=192 - _globals['_FFIREQUEST']._serialized_end=6752 - _globals['_FFIRESPONSE']._serialized_start=6755 - _globals['_FFIRESPONSE']._serialized_end=13337 - _globals['_FFIEVENT']._serialized_start=13340 - _globals['_FFIEVENT']._serialized_end=16502 - _globals['_DISPOSEREQUEST']._serialized_start=16504 - _globals['_DISPOSEREQUEST']._serialized_end=16535 - _globals['_DISPOSERESPONSE']._serialized_start=16537 - _globals['_DISPOSERESPONSE']._serialized_end=16572 - _globals['_DISPOSECALLBACK']._serialized_start=16574 - _globals['_DISPOSECALLBACK']._serialized_end=16609 - _globals['_LOGRECORD']._serialized_start=16612 - _globals['_LOGRECORD']._serialized_end=16745 - _globals['_LOGBATCH']._serialized_start=16747 - _globals['_LOGBATCH']._serialized_end=16800 - _globals['_PANIC']._serialized_start=16802 - _globals['_PANIC']._serialized_end=16826 + _globals['_FFIREQUEST']._serialized_end=6947 + _globals['_FFIRESPONSE']._serialized_start=6950 + _globals['_FFIRESPONSE']._serialized_end=13730 + _globals['_FFIEVENT']._serialized_start=13733 + _globals['_FFIEVENT']._serialized_end=16945 + _globals['_DISPOSEREQUEST']._serialized_start=16947 + _globals['_DISPOSEREQUEST']._serialized_end=16978 + _globals['_DISPOSERESPONSE']._serialized_start=16980 + _globals['_DISPOSERESPONSE']._serialized_end=17015 + _globals['_DISPOSECALLBACK']._serialized_start=17017 + _globals['_DISPOSECALLBACK']._serialized_end=17052 + _globals['_LOGRECORD']._serialized_start=17055 + _globals['_LOGRECORD']._serialized_end=17188 + _globals['_LOGBATCH']._serialized_start=17190 + _globals['_LOGBATCH']._serialized_end=17243 + _globals['_PANIC']._serialized_start=17245 + _globals['_PANIC']._serialized_end=17269 # @@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 8f3af75d7..f61585602 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi @@ -187,6 +187,9 @@ class FfiRequest(google.protobuf.message.Message): NEW_CAPTURE_SOURCE_FIELD_NUMBER: builtins.int START_CAPTURE_FIELD_NUMBER: builtins.int STOP_CAPTURE_FIELD_NUMBER: builtins.int + JOIN_CAPTURE_FIELD_NUMBER: builtins.int + PREWARM_FIELD_NUMBER: builtins.int + PREWARMED_CONNECTION_ALIVE_FIELD_NUMBER: builtins.int @property def dispose(self) -> global___DisposeRequest: ... @property @@ -403,6 +406,14 @@ class FfiRequest(google.protobuf.message.Message): def start_capture(self) -> capture_pb2.StartCaptureRequest: ... @property def stop_capture(self) -> capture_pb2.StopCaptureRequest: ... + @property + def join_capture(self) -> capture_pb2.JoinCaptureRequest: ... + @property + def prewarm(self) -> room_pb2.PrewarmRequest: + """Signalling transport prewarm""" + + @property + def prewarmed_connection_alive(self) -> room_pb2.PrewarmedConnectionAliveRequest: ... def __init__( self, *, @@ -496,10 +507,13 @@ class FfiRequest(google.protobuf.message.Message): new_capture_source: capture_pb2.NewCaptureSourceRequest | None = ..., start_capture: capture_pb2.StartCaptureRequest | None = ..., stop_capture: capture_pb2.StopCaptureRequest | None = ..., + join_capture: capture_pb2.JoinCaptureRequest | None = ..., + prewarm: room_pb2.PrewarmRequest | None = ..., + prewarmed_connection_alive: room_pb2.PrewarmedConnectionAliveRequest | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "apm_set_stream_delay", b"apm_set_stream_delay", "audio_stream_from_participant", b"audio_stream_from_participant", "byte_read_all", b"byte_read_all", "byte_read_incremental", b"byte_read_incremental", "byte_stream_close", b"byte_stream_close", "byte_stream_open", b"byte_stream_open", "byte_stream_write", b"byte_stream_write", "byte_write_to_file", b"byte_write_to_file", "capture_audio_frame", b"capture_audio_frame", "capture_encoded_video_frame", b"capture_encoded_video_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", "data_track_stream_read", b"data_track_stream_read", "define_schema", b"define_schema", "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_audio_devices", b"get_audio_devices", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_data_track_is_published", b"local_data_track_is_published", "local_data_track_try_push", b"local_data_track_try_push", "local_data_track_unpublish", b"local_data_track_unpublish", "local_track_mute", b"local_track_mute", "message", b"message", "new_apm", b"new_apm", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_capture_source", b"new_capture_source", "new_platform_audio", b"new_platform_audio", "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_data_track", b"publish_data_track", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "ready_for_room_event", b"ready_for_room_event", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "remote_data_track_is_published", b"remote_data_track_is_published", "remote_data_track_set_pipeline_options", b"remote_data_track_set_pipeline_options", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_bytes", b"send_bytes", "send_chat_message", b"send_chat_message", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "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_playout_device", b"set_playout_device", "set_recording_device", b"set_recording_device", "set_remote_track_publication_quality", b"set_remote_track_publication_quality", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "simulate_scenario", b"simulate_scenario", "start_capture", b"start_capture", "start_recording", b"start_recording", "stop_capture", b"stop_capture", "stop_recording", b"stop_recording", "subscribe_data_track", b"subscribe_data_track", "take_encoded_video_source_feedback", b"take_encoded_video_source_feedback", "text_read_all", b"text_read_all", "text_read_incremental", b"text_read_incremental", "text_stream_close", b"text_stream_close", "text_stream_open", b"text_stream_open", "text_stream_write", b"text_stream_write", "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["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "apm_set_stream_delay", b"apm_set_stream_delay", "audio_stream_from_participant", b"audio_stream_from_participant", "byte_read_all", b"byte_read_all", "byte_read_incremental", b"byte_read_incremental", "byte_stream_close", b"byte_stream_close", "byte_stream_open", b"byte_stream_open", "byte_stream_write", b"byte_stream_write", "byte_write_to_file", b"byte_write_to_file", "capture_audio_frame", b"capture_audio_frame", "capture_encoded_video_frame", b"capture_encoded_video_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", "data_track_stream_read", b"data_track_stream_read", "define_schema", b"define_schema", "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_audio_devices", b"get_audio_devices", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_data_track_is_published", b"local_data_track_is_published", "local_data_track_try_push", b"local_data_track_try_push", "local_data_track_unpublish", b"local_data_track_unpublish", "local_track_mute", b"local_track_mute", "message", b"message", "new_apm", b"new_apm", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_capture_source", b"new_capture_source", "new_platform_audio", b"new_platform_audio", "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_data_track", b"publish_data_track", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "ready_for_room_event", b"ready_for_room_event", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "remote_data_track_is_published", b"remote_data_track_is_published", "remote_data_track_set_pipeline_options", b"remote_data_track_set_pipeline_options", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_bytes", b"send_bytes", "send_chat_message", b"send_chat_message", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "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_playout_device", b"set_playout_device", "set_recording_device", b"set_recording_device", "set_remote_track_publication_quality", b"set_remote_track_publication_quality", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "simulate_scenario", b"simulate_scenario", "start_capture", b"start_capture", "start_recording", b"start_recording", "stop_capture", b"stop_capture", "stop_recording", b"stop_recording", "subscribe_data_track", b"subscribe_data_track", "take_encoded_video_source_feedback", b"take_encoded_video_source_feedback", "text_read_all", b"text_read_all", "text_read_incremental", b"text_read_incremental", "text_stream_close", b"text_stream_close", "text_stream_open", b"text_stream_open", "text_stream_write", b"text_stream_write", "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", "set_track_subscription_permissions", "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", "new_apm", "apm_process_stream", "apm_process_reverse_stream", "apm_set_stream_delay", "byte_read_incremental", "byte_read_all", "byte_write_to_file", "text_read_incremental", "text_read_all", "send_file", "send_text", "byte_stream_open", "byte_stream_write", "byte_stream_close", "text_stream_open", "text_stream_write", "text_stream_close", "send_bytes", "set_remote_track_publication_quality", "publish_data_track", "local_data_track_try_push", "local_data_track_unpublish", "local_data_track_is_published", "subscribe_data_track", "remote_data_track_is_published", "data_track_stream_read", "remote_data_track_set_pipeline_options", "define_schema", "get_schema", "capture_encoded_video_frame", "take_encoded_video_source_feedback", "simulate_scenario", "new_platform_audio", "get_audio_devices", "set_recording_device", "set_playout_device", "start_recording", "stop_recording", "ready_for_room_event", "new_capture_source", "start_capture", "stop_capture"] | None: ... + def HasField(self, field_name: typing.Literal["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "apm_set_stream_delay", b"apm_set_stream_delay", "audio_stream_from_participant", b"audio_stream_from_participant", "byte_read_all", b"byte_read_all", "byte_read_incremental", b"byte_read_incremental", "byte_stream_close", b"byte_stream_close", "byte_stream_open", b"byte_stream_open", "byte_stream_write", b"byte_stream_write", "byte_write_to_file", b"byte_write_to_file", "capture_audio_frame", b"capture_audio_frame", "capture_encoded_video_frame", b"capture_encoded_video_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", "data_track_stream_read", b"data_track_stream_read", "define_schema", b"define_schema", "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_audio_devices", b"get_audio_devices", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "join_capture", b"join_capture", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_data_track_is_published", b"local_data_track_is_published", "local_data_track_try_push", b"local_data_track_try_push", "local_data_track_unpublish", b"local_data_track_unpublish", "local_track_mute", b"local_track_mute", "message", b"message", "new_apm", b"new_apm", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_capture_source", b"new_capture_source", "new_platform_audio", b"new_platform_audio", "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", "prewarm", b"prewarm", "prewarmed_connection_alive", b"prewarmed_connection_alive", "publish_data", b"publish_data", "publish_data_track", b"publish_data_track", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "ready_for_room_event", b"ready_for_room_event", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "remote_data_track_is_published", b"remote_data_track_is_published", "remote_data_track_set_pipeline_options", b"remote_data_track_set_pipeline_options", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_bytes", b"send_bytes", "send_chat_message", b"send_chat_message", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "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_playout_device", b"set_playout_device", "set_recording_device", b"set_recording_device", "set_remote_track_publication_quality", b"set_remote_track_publication_quality", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "simulate_scenario", b"simulate_scenario", "start_capture", b"start_capture", "start_recording", b"start_recording", "stop_capture", b"stop_capture", "stop_recording", b"stop_recording", "subscribe_data_track", b"subscribe_data_track", "take_encoded_video_source_feedback", b"take_encoded_video_source_feedback", "text_read_all", b"text_read_all", "text_read_incremental", b"text_read_incremental", "text_stream_close", b"text_stream_close", "text_stream_open", b"text_stream_open", "text_stream_write", b"text_stream_write", "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["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "apm_set_stream_delay", b"apm_set_stream_delay", "audio_stream_from_participant", b"audio_stream_from_participant", "byte_read_all", b"byte_read_all", "byte_read_incremental", b"byte_read_incremental", "byte_stream_close", b"byte_stream_close", "byte_stream_open", b"byte_stream_open", "byte_stream_write", b"byte_stream_write", "byte_write_to_file", b"byte_write_to_file", "capture_audio_frame", b"capture_audio_frame", "capture_encoded_video_frame", b"capture_encoded_video_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", "data_track_stream_read", b"data_track_stream_read", "define_schema", b"define_schema", "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_audio_devices", b"get_audio_devices", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "join_capture", b"join_capture", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_data_track_is_published", b"local_data_track_is_published", "local_data_track_try_push", b"local_data_track_try_push", "local_data_track_unpublish", b"local_data_track_unpublish", "local_track_mute", b"local_track_mute", "message", b"message", "new_apm", b"new_apm", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_capture_source", b"new_capture_source", "new_platform_audio", b"new_platform_audio", "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", "prewarm", b"prewarm", "prewarmed_connection_alive", b"prewarmed_connection_alive", "publish_data", b"publish_data", "publish_data_track", b"publish_data_track", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "ready_for_room_event", b"ready_for_room_event", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "remote_data_track_is_published", b"remote_data_track_is_published", "remote_data_track_set_pipeline_options", b"remote_data_track_set_pipeline_options", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_bytes", b"send_bytes", "send_chat_message", b"send_chat_message", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "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_playout_device", b"set_playout_device", "set_recording_device", b"set_recording_device", "set_remote_track_publication_quality", b"set_remote_track_publication_quality", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "simulate_scenario", b"simulate_scenario", "start_capture", b"start_capture", "start_recording", b"start_recording", "stop_capture", b"stop_capture", "stop_recording", b"stop_recording", "subscribe_data_track", b"subscribe_data_track", "take_encoded_video_source_feedback", b"take_encoded_video_source_feedback", "text_read_all", b"text_read_all", "text_read_incremental", b"text_read_incremental", "text_stream_close", b"text_stream_close", "text_stream_open", b"text_stream_open", "text_stream_write", b"text_stream_write", "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", "set_track_subscription_permissions", "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", "new_apm", "apm_process_stream", "apm_process_reverse_stream", "apm_set_stream_delay", "byte_read_incremental", "byte_read_all", "byte_write_to_file", "text_read_incremental", "text_read_all", "send_file", "send_text", "byte_stream_open", "byte_stream_write", "byte_stream_close", "text_stream_open", "text_stream_write", "text_stream_close", "send_bytes", "set_remote_track_publication_quality", "publish_data_track", "local_data_track_try_push", "local_data_track_unpublish", "local_data_track_is_published", "subscribe_data_track", "remote_data_track_is_published", "data_track_stream_read", "remote_data_track_set_pipeline_options", "define_schema", "get_schema", "capture_encoded_video_frame", "take_encoded_video_source_feedback", "simulate_scenario", "new_platform_audio", "get_audio_devices", "set_recording_device", "set_playout_device", "start_recording", "stop_recording", "ready_for_room_event", "new_capture_source", "start_capture", "stop_capture", "join_capture", "prewarm", "prewarmed_connection_alive"] | None: ... global___FfiRequest = FfiRequest @@ -598,6 +612,9 @@ class FfiResponse(google.protobuf.message.Message): NEW_CAPTURE_SOURCE_FIELD_NUMBER: builtins.int START_CAPTURE_FIELD_NUMBER: builtins.int STOP_CAPTURE_FIELD_NUMBER: builtins.int + JOIN_CAPTURE_FIELD_NUMBER: builtins.int + PREWARM_FIELD_NUMBER: builtins.int + PREWARMED_CONNECTION_ALIVE_FIELD_NUMBER: builtins.int @property def dispose(self) -> global___DisposeResponse: ... @property @@ -812,6 +829,14 @@ class FfiResponse(google.protobuf.message.Message): def start_capture(self) -> capture_pb2.StartCaptureResponse: ... @property def stop_capture(self) -> capture_pb2.StopCaptureResponse: ... + @property + def join_capture(self) -> capture_pb2.JoinCaptureResponse: ... + @property + def prewarm(self) -> room_pb2.PrewarmResponse: + """Signalling transport prewarm""" + + @property + def prewarmed_connection_alive(self) -> room_pb2.PrewarmedConnectionAliveResponse: ... def __init__( self, *, @@ -904,10 +929,13 @@ class FfiResponse(google.protobuf.message.Message): new_capture_source: capture_pb2.NewCaptureSourceResponse | None = ..., start_capture: capture_pb2.StartCaptureResponse | None = ..., stop_capture: capture_pb2.StopCaptureResponse | None = ..., + join_capture: capture_pb2.JoinCaptureResponse | None = ..., + prewarm: room_pb2.PrewarmResponse | None = ..., + prewarmed_connection_alive: room_pb2.PrewarmedConnectionAliveResponse | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "apm_set_stream_delay", b"apm_set_stream_delay", "audio_stream_from_participant", b"audio_stream_from_participant", "byte_read_all", b"byte_read_all", "byte_read_incremental", b"byte_read_incremental", "byte_stream_close", b"byte_stream_close", "byte_stream_open", b"byte_stream_open", "byte_stream_write", b"byte_stream_write", "byte_write_to_file", b"byte_write_to_file", "capture_audio_frame", b"capture_audio_frame", "capture_encoded_video_frame", b"capture_encoded_video_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", "data_track_stream_read", b"data_track_stream_read", "define_schema", b"define_schema", "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_audio_devices", b"get_audio_devices", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_data_track_is_published", b"local_data_track_is_published", "local_data_track_try_push", b"local_data_track_try_push", "local_data_track_unpublish", b"local_data_track_unpublish", "local_track_mute", b"local_track_mute", "message", b"message", "new_apm", b"new_apm", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_capture_source", b"new_capture_source", "new_platform_audio", b"new_platform_audio", "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_data_track", b"publish_data_track", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "ready_for_room_event", b"ready_for_room_event", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "remote_data_track_is_published", b"remote_data_track_is_published", "remote_data_track_set_pipeline_options", b"remote_data_track_set_pipeline_options", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_bytes", b"send_bytes", "send_chat_message", b"send_chat_message", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "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_playout_device", b"set_playout_device", "set_recording_device", b"set_recording_device", "set_remote_track_publication_quality", b"set_remote_track_publication_quality", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "simulate_scenario", b"simulate_scenario", "start_capture", b"start_capture", "start_recording", b"start_recording", "stop_capture", b"stop_capture", "stop_recording", b"stop_recording", "subscribe_data_track", b"subscribe_data_track", "take_encoded_video_source_feedback", b"take_encoded_video_source_feedback", "text_read_all", b"text_read_all", "text_read_incremental", b"text_read_incremental", "text_stream_close", b"text_stream_close", "text_stream_open", b"text_stream_open", "text_stream_write", b"text_stream_write", "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["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "apm_set_stream_delay", b"apm_set_stream_delay", "audio_stream_from_participant", b"audio_stream_from_participant", "byte_read_all", b"byte_read_all", "byte_read_incremental", b"byte_read_incremental", "byte_stream_close", b"byte_stream_close", "byte_stream_open", b"byte_stream_open", "byte_stream_write", b"byte_stream_write", "byte_write_to_file", b"byte_write_to_file", "capture_audio_frame", b"capture_audio_frame", "capture_encoded_video_frame", b"capture_encoded_video_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", "data_track_stream_read", b"data_track_stream_read", "define_schema", b"define_schema", "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_audio_devices", b"get_audio_devices", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_data_track_is_published", b"local_data_track_is_published", "local_data_track_try_push", b"local_data_track_try_push", "local_data_track_unpublish", b"local_data_track_unpublish", "local_track_mute", b"local_track_mute", "message", b"message", "new_apm", b"new_apm", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_capture_source", b"new_capture_source", "new_platform_audio", b"new_platform_audio", "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_data_track", b"publish_data_track", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "ready_for_room_event", b"ready_for_room_event", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "remote_data_track_is_published", b"remote_data_track_is_published", "remote_data_track_set_pipeline_options", b"remote_data_track_set_pipeline_options", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_bytes", b"send_bytes", "send_chat_message", b"send_chat_message", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "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_playout_device", b"set_playout_device", "set_recording_device", b"set_recording_device", "set_remote_track_publication_quality", b"set_remote_track_publication_quality", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "simulate_scenario", b"simulate_scenario", "start_capture", b"start_capture", "start_recording", b"start_recording", "stop_capture", b"stop_capture", "stop_recording", b"stop_recording", "subscribe_data_track", b"subscribe_data_track", "take_encoded_video_source_feedback", b"take_encoded_video_source_feedback", "text_read_all", b"text_read_all", "text_read_incremental", b"text_read_incremental", "text_stream_close", b"text_stream_close", "text_stream_open", b"text_stream_open", "text_stream_write", b"text_stream_write", "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", "set_track_subscription_permissions", "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", "new_apm", "apm_process_stream", "apm_process_reverse_stream", "apm_set_stream_delay", "byte_read_incremental", "byte_read_all", "byte_write_to_file", "text_read_incremental", "text_read_all", "send_file", "send_text", "byte_stream_open", "byte_stream_write", "byte_stream_close", "text_stream_open", "text_stream_write", "text_stream_close", "send_bytes", "set_remote_track_publication_quality", "publish_data_track", "local_data_track_try_push", "local_data_track_unpublish", "local_data_track_is_published", "subscribe_data_track", "remote_data_track_is_published", "data_track_stream_read", "remote_data_track_set_pipeline_options", "define_schema", "get_schema", "capture_encoded_video_frame", "take_encoded_video_source_feedback", "simulate_scenario", "new_platform_audio", "get_audio_devices", "set_recording_device", "set_playout_device", "start_recording", "stop_recording", "ready_for_room_event", "new_capture_source", "start_capture", "stop_capture"] | None: ... + def HasField(self, field_name: typing.Literal["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "apm_set_stream_delay", b"apm_set_stream_delay", "audio_stream_from_participant", b"audio_stream_from_participant", "byte_read_all", b"byte_read_all", "byte_read_incremental", b"byte_read_incremental", "byte_stream_close", b"byte_stream_close", "byte_stream_open", b"byte_stream_open", "byte_stream_write", b"byte_stream_write", "byte_write_to_file", b"byte_write_to_file", "capture_audio_frame", b"capture_audio_frame", "capture_encoded_video_frame", b"capture_encoded_video_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", "data_track_stream_read", b"data_track_stream_read", "define_schema", b"define_schema", "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_audio_devices", b"get_audio_devices", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "join_capture", b"join_capture", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_data_track_is_published", b"local_data_track_is_published", "local_data_track_try_push", b"local_data_track_try_push", "local_data_track_unpublish", b"local_data_track_unpublish", "local_track_mute", b"local_track_mute", "message", b"message", "new_apm", b"new_apm", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_capture_source", b"new_capture_source", "new_platform_audio", b"new_platform_audio", "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", "prewarm", b"prewarm", "prewarmed_connection_alive", b"prewarmed_connection_alive", "publish_data", b"publish_data", "publish_data_track", b"publish_data_track", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "ready_for_room_event", b"ready_for_room_event", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "remote_data_track_is_published", b"remote_data_track_is_published", "remote_data_track_set_pipeline_options", b"remote_data_track_set_pipeline_options", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_bytes", b"send_bytes", "send_chat_message", b"send_chat_message", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "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_playout_device", b"set_playout_device", "set_recording_device", b"set_recording_device", "set_remote_track_publication_quality", b"set_remote_track_publication_quality", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "simulate_scenario", b"simulate_scenario", "start_capture", b"start_capture", "start_recording", b"start_recording", "stop_capture", b"stop_capture", "stop_recording", b"stop_recording", "subscribe_data_track", b"subscribe_data_track", "take_encoded_video_source_feedback", b"take_encoded_video_source_feedback", "text_read_all", b"text_read_all", "text_read_incremental", b"text_read_incremental", "text_stream_close", b"text_stream_close", "text_stream_open", b"text_stream_open", "text_stream_write", b"text_stream_write", "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["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "apm_set_stream_delay", b"apm_set_stream_delay", "audio_stream_from_participant", b"audio_stream_from_participant", "byte_read_all", b"byte_read_all", "byte_read_incremental", b"byte_read_incremental", "byte_stream_close", b"byte_stream_close", "byte_stream_open", b"byte_stream_open", "byte_stream_write", b"byte_stream_write", "byte_write_to_file", b"byte_write_to_file", "capture_audio_frame", b"capture_audio_frame", "capture_encoded_video_frame", b"capture_encoded_video_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", "data_track_stream_read", b"data_track_stream_read", "define_schema", b"define_schema", "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_audio_devices", b"get_audio_devices", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "join_capture", b"join_capture", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_data_track_is_published", b"local_data_track_is_published", "local_data_track_try_push", b"local_data_track_try_push", "local_data_track_unpublish", b"local_data_track_unpublish", "local_track_mute", b"local_track_mute", "message", b"message", "new_apm", b"new_apm", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_capture_source", b"new_capture_source", "new_platform_audio", b"new_platform_audio", "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", "prewarm", b"prewarm", "prewarmed_connection_alive", b"prewarmed_connection_alive", "publish_data", b"publish_data", "publish_data_track", b"publish_data_track", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "ready_for_room_event", b"ready_for_room_event", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "remote_data_track_is_published", b"remote_data_track_is_published", "remote_data_track_set_pipeline_options", b"remote_data_track_set_pipeline_options", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_bytes", b"send_bytes", "send_chat_message", b"send_chat_message", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "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_playout_device", b"set_playout_device", "set_recording_device", b"set_recording_device", "set_remote_track_publication_quality", b"set_remote_track_publication_quality", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "simulate_scenario", b"simulate_scenario", "start_capture", b"start_capture", "start_recording", b"start_recording", "stop_capture", b"stop_capture", "stop_recording", b"stop_recording", "subscribe_data_track", b"subscribe_data_track", "take_encoded_video_source_feedback", b"take_encoded_video_source_feedback", "text_read_all", b"text_read_all", "text_read_incremental", b"text_read_incremental", "text_stream_close", b"text_stream_close", "text_stream_open", b"text_stream_open", "text_stream_write", b"text_stream_write", "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", "set_track_subscription_permissions", "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", "new_apm", "apm_process_stream", "apm_process_reverse_stream", "apm_set_stream_delay", "byte_read_incremental", "byte_read_all", "byte_write_to_file", "text_read_incremental", "text_read_all", "send_file", "send_text", "byte_stream_open", "byte_stream_write", "byte_stream_close", "text_stream_open", "text_stream_write", "text_stream_close", "send_bytes", "set_remote_track_publication_quality", "publish_data_track", "local_data_track_try_push", "local_data_track_unpublish", "local_data_track_is_published", "subscribe_data_track", "remote_data_track_is_published", "data_track_stream_read", "remote_data_track_set_pipeline_options", "define_schema", "get_schema", "capture_encoded_video_frame", "take_encoded_video_source_feedback", "simulate_scenario", "new_platform_audio", "get_audio_devices", "set_recording_device", "set_playout_device", "start_recording", "stop_recording", "ready_for_room_event", "new_capture_source", "start_capture", "stop_capture", "join_capture", "prewarm", "prewarmed_connection_alive"] | None: ... global___FfiResponse = FfiResponse @@ -966,7 +994,8 @@ class FfiEvent(google.protobuf.message.Message): DEFINE_SCHEMA_FIELD_NUMBER: builtins.int GET_SCHEMA_FIELD_NUMBER: builtins.int NEW_CAPTURE_SOURCE_FIELD_NUMBER: builtins.int - CAPTURE_SOURCE_EVENT_FIELD_NUMBER: builtins.int + JOIN_CAPTURE_FIELD_NUMBER: builtins.int + PREWARM_FIELD_NUMBER: builtins.int @property def room_event(self) -> room_pb2.RoomEvent: ... @property @@ -1072,7 +1101,11 @@ class FfiEvent(google.protobuf.message.Message): """Capture sources (livekit-capture; requires the `capture` feature)""" @property - def capture_source_event(self) -> capture_pb2.CaptureSourceEvent: ... + def join_capture(self) -> capture_pb2.JoinCaptureCallback: ... + @property + def prewarm(self) -> room_pb2.PrewarmCallback: + """Signalling transport prewarm""" + def __init__( self, *, @@ -1122,11 +1155,12 @@ class FfiEvent(google.protobuf.message.Message): define_schema: data_track_pb2.DefineSchemaCallback | None = ..., get_schema: data_track_pb2.GetSchemaCallback | None = ..., new_capture_source: capture_pb2.NewCaptureSourceCallback | None = ..., - capture_source_event: capture_pb2.CaptureSourceEvent | None = ..., + join_capture: capture_pb2.JoinCaptureCallback | None = ..., + prewarm: room_pb2.PrewarmCallback | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["audio_stream_event", b"audio_stream_event", "byte_stream_open", b"byte_stream_open", "byte_stream_reader_event", b"byte_stream_reader_event", "byte_stream_reader_read_all", b"byte_stream_reader_read_all", "byte_stream_reader_write_to_file", b"byte_stream_reader_write_to_file", "byte_stream_writer_close", b"byte_stream_writer_close", "byte_stream_writer_write", b"byte_stream_writer_write", "capture_audio_frame", b"capture_audio_frame", "capture_source_event", b"capture_source_event", "chat_message", b"chat_message", "connect", b"connect", "data_track_stream_event", b"data_track_stream_event", "define_schema", b"define_schema", "disconnect", b"disconnect", "dispose", b"dispose", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "new_capture_source", b"new_capture_source", "panic", b"panic", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_data_track", b"publish_data_track", "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_bytes", b"send_bytes", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "simulate_scenario", b"simulate_scenario", "text_stream_open", b"text_stream_open", "text_stream_reader_event", b"text_stream_reader_event", "text_stream_reader_read_all", b"text_stream_reader_read_all", "text_stream_writer_close", b"text_stream_writer_close", "text_stream_writer_write", b"text_stream_writer_write", "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", "byte_stream_open", b"byte_stream_open", "byte_stream_reader_event", b"byte_stream_reader_event", "byte_stream_reader_read_all", b"byte_stream_reader_read_all", "byte_stream_reader_write_to_file", b"byte_stream_reader_write_to_file", "byte_stream_writer_close", b"byte_stream_writer_close", "byte_stream_writer_write", b"byte_stream_writer_write", "capture_audio_frame", b"capture_audio_frame", "capture_source_event", b"capture_source_event", "chat_message", b"chat_message", "connect", b"connect", "data_track_stream_event", b"data_track_stream_event", "define_schema", b"define_schema", "disconnect", b"disconnect", "dispose", b"dispose", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "new_capture_source", b"new_capture_source", "panic", b"panic", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_data_track", b"publish_data_track", "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_bytes", b"send_bytes", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "simulate_scenario", b"simulate_scenario", "text_stream_open", b"text_stream_open", "text_stream_reader_event", b"text_stream_reader_event", "text_stream_reader_read_all", b"text_stream_reader_read_all", "text_stream_writer_close", b"text_stream_writer_close", "text_stream_writer_write", b"text_stream_writer_write", "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", "byte_stream_reader_event", "byte_stream_reader_read_all", "byte_stream_reader_write_to_file", "byte_stream_open", "byte_stream_writer_write", "byte_stream_writer_close", "send_file", "text_stream_reader_event", "text_stream_reader_read_all", "text_stream_open", "text_stream_writer_write", "text_stream_writer_close", "send_text", "send_bytes", "publish_data_track", "data_track_stream_event", "simulate_scenario", "define_schema", "get_schema", "new_capture_source", "capture_source_event"] | None: ... + def HasField(self, field_name: typing.Literal["audio_stream_event", b"audio_stream_event", "byte_stream_open", b"byte_stream_open", "byte_stream_reader_event", b"byte_stream_reader_event", "byte_stream_reader_read_all", b"byte_stream_reader_read_all", "byte_stream_reader_write_to_file", b"byte_stream_reader_write_to_file", "byte_stream_writer_close", b"byte_stream_writer_close", "byte_stream_writer_write", b"byte_stream_writer_write", "capture_audio_frame", b"capture_audio_frame", "chat_message", b"chat_message", "connect", b"connect", "data_track_stream_event", b"data_track_stream_event", "define_schema", b"define_schema", "disconnect", b"disconnect", "dispose", b"dispose", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "join_capture", b"join_capture", "logs", b"logs", "message", b"message", "new_capture_source", b"new_capture_source", "panic", b"panic", "perform_rpc", b"perform_rpc", "prewarm", b"prewarm", "publish_data", b"publish_data", "publish_data_track", b"publish_data_track", "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_bytes", b"send_bytes", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "simulate_scenario", b"simulate_scenario", "text_stream_open", b"text_stream_open", "text_stream_reader_event", b"text_stream_reader_event", "text_stream_reader_read_all", b"text_stream_reader_read_all", "text_stream_writer_close", b"text_stream_writer_close", "text_stream_writer_write", b"text_stream_writer_write", "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", "byte_stream_open", b"byte_stream_open", "byte_stream_reader_event", b"byte_stream_reader_event", "byte_stream_reader_read_all", b"byte_stream_reader_read_all", "byte_stream_reader_write_to_file", b"byte_stream_reader_write_to_file", "byte_stream_writer_close", b"byte_stream_writer_close", "byte_stream_writer_write", b"byte_stream_writer_write", "capture_audio_frame", b"capture_audio_frame", "chat_message", b"chat_message", "connect", b"connect", "data_track_stream_event", b"data_track_stream_event", "define_schema", b"define_schema", "disconnect", b"disconnect", "dispose", b"dispose", "get_schema", b"get_schema", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "join_capture", b"join_capture", "logs", b"logs", "message", b"message", "new_capture_source", b"new_capture_source", "panic", b"panic", "perform_rpc", b"perform_rpc", "prewarm", b"prewarm", "publish_data", b"publish_data", "publish_data_track", b"publish_data_track", "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_bytes", b"send_bytes", "send_file", b"send_file", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "send_text", b"send_text", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "simulate_scenario", b"simulate_scenario", "text_stream_open", b"text_stream_open", "text_stream_reader_event", b"text_stream_reader_event", "text_stream_reader_read_all", b"text_stream_reader_read_all", "text_stream_writer_close", b"text_stream_writer_close", "text_stream_writer_write", b"text_stream_writer_write", "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", "byte_stream_reader_event", "byte_stream_reader_read_all", "byte_stream_reader_write_to_file", "byte_stream_open", "byte_stream_writer_write", "byte_stream_writer_close", "send_file", "text_stream_reader_event", "text_stream_reader_read_all", "text_stream_open", "text_stream_writer_write", "text_stream_writer_close", "send_text", "send_bytes", "publish_data_track", "data_track_stream_event", "simulate_scenario", "define_schema", "get_schema", "new_capture_source", "join_capture", "prewarm"] | None: ... global___FfiEvent = FfiEvent diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index 9dc49e8e4..0b6b44914 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -22,7 +22,7 @@ from . import data_track_pb2 as data__track__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\x1a\x11\x64\x61ta_stream.proto\x1a\x10\x64\x61ta_track.proto\"s\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\x12\x18\n\x10request_async_id\x18\x04 \x01(\x04\"#\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\"s\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\x12\x18\n\x10request_async_id\x18\x02 \x01(\x04\x12/\n\x06reason\x18\x03 \x01(\x0e\x32\x1f.livekit.proto.DisconnectReason\"&\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\"\x7f\n\x17SimulateScenarioRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\x12\x35\n\x08scenario\x18\x02 \x02(\x0e\x32#.livekit.proto.SimulateScenarioKind\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\",\n\x18SimulateScenarioResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SimulateScenarioCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x9c\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\x12\x18\n\x10request_async_id\x18\x04 \x01(\x04\"(\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\"/\n\x18ReadyForRoomEventRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\"\x1b\n\x19ReadyForRoomEventResponse\"\x81\x01\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\x12\x18\n\x10request_async_id\x18\x04 \x01(\x04\"*\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\"\xd3\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\x12\x18\n\x10request_async_id\x18\x08 \x01(\x04\"\'\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\"\xc0\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"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\"\x90\x01\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"*\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\"g\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x10\n\x08metadata\x18\x02 \x02(\t\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\",\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\"\x9e\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"\xd6\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\x12\x18\n\x10request_async_id\x18\x06 \x01(\x04\"+\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\"\x8b\x01\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\nattributes\x18\x02 \x03(\x0b\x32\x1e.livekit.proto.AttributesEntry\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\"-\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\"_\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x0c\n\x04name\x18\x02 \x02(\t\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\"(\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\"G\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\x12\x18\n\x10request_async_id\x18\x02 \x01(\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\"\x96\x04\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\x12\x19\n\x11preconnect_buffer\x18\t \x01(\x08\x12\x44\n\x17\x66rame_metadata_features\x18\n \x03(\x0e\x32#.livekit.proto.FrameMetadataFeature\x12\x18\n\x10scalability_mode\x18\x0b \x01(\t\x12\x39\n\rvideo_encoder\x18\x0c \x01(\x0e\x32\".livekit.proto.VideoEncoderBackend\x12\x44\n\x16\x64\x65gradation_preference\x18\r \x01(\x0e\x32$.livekit.proto.DegradationPreference\"=\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\"b\n\x15RoomDataStreamOptions\x12\x1f\n\x17max_payload_byte_length\x18\x01 \x01(\x04\x12(\n use_legacy_client_implementation\x18\x02 \x01(\x08\"\xfd\x02\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.E2eeOptionsB\x02\x18\x01\x12,\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfig\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\r\x12.\n\nencryption\x18\x07 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptions\x12\x1e\n\x16single_peer_connection\x18\x08 \x01(\x08\x12\x1a\n\x12\x63onnect_timeout_ms\x18\t \x01(\x04\x12\x39\n\x0b\x64\x61ta_stream\x18\n \x01(\x0b\x32$.livekit.proto.RoomDataStreamOptions\x12\x12\n\nother_sdks\x18\x0b \x01(\t\"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\"\xce\x17\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\x12=\n\x12\x62yte_stream_opened\x18\" \x01(\x0b\x32\x1f.livekit.proto.ByteStreamOpenedH\x00\x12=\n\x12text_stream_opened\x18# \x01(\x0b\x32\x1f.livekit.proto.TextStreamOpenedH\x00\x12/\n\x0croom_updated\x18$ \x01(\x0b\x32\x17.livekit.proto.RoomInfoH\x00\x12(\n\x05moved\x18% \x01(\x0b\x32\x17.livekit.proto.RoomInfoH\x00\x12\x42\n\x14participants_updated\x18& \x01(\x0b\x32\".livekit.proto.ParticipantsUpdatedH\x00\x12\x62\n%participant_encryption_status_changed\x18\' \x01(\x0b\x32\x31.livekit.proto.ParticipantEncryptionStatusChangedH\x00\x12U\n\x1eparticipant_permission_changed\x18) \x01(\x0b\x32+.livekit.proto.ParticipantPermissionChangedH\x00\x12\x38\n\x0ftoken_refreshed\x18( \x01(\x0b\x32\x1d.livekit.proto.TokenRefreshedH\x00\x12>\n\x12participant_active\x18* \x01(\x0b\x32 .livekit.proto.ParticipantActiveH\x00\x12\x41\n\x14\x64\x61ta_track_published\x18+ \x01(\x0b\x32!.livekit.proto.DataTrackPublishedH\x00\x12\x45\n\x16\x64\x61ta_track_unpublished\x18, \x01(\x0b\x32#.livekit.proto.DataTrackUnpublishedH\x00\x12G\n\x17local_track_republished\x18- \x01(\x0b\x32$.livekit.proto.LocalTrackRepublishedH\x00\x42\t\n\x07message\"\xc9\x02\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\x12\x15\n\rempty_timeout\x18\x06 \x02(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\x07 \x02(\r\x12\x18\n\x10max_participants\x18\x08 \x02(\r\x12\x15\n\rcreation_time\x18\t \x02(\x03\x12\x18\n\x10num_participants\x18\n \x02(\r\x12\x16\n\x0enum_publishers\x18\x0b \x02(\r\x12\x18\n\x10\x61\x63tive_recording\x18\x0c \x02(\x08\"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\"K\n\x13ParticipantsUpdated\x12\x34\n\x0cparticipants\x18\x01 \x03(\x0b\x32\x1e.livekit.proto.ParticipantInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"1\n\x11ParticipantActive\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\"s\n\x17ParticipantDisconnected\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12:\n\x11\x64isconnect_reason\x18\x02 \x02(\x0e\x32\x1f.livekit.proto.DisconnectReason\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x02(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x02(\t\"|\n\x15LocalTrackRepublished\x12\x1a\n\x12publication_handle\x18\x01 \x02(\x04\x12\x14\n\x0cprevious_sid\x18\x02 \x02(\t\x12\x31\n\x04info\x18\x03 \x02(\x0b\x32#.livekit.proto.TrackPublicationInfo\")\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\"X\n\"ParticipantEncryptionStatusChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x14\n\x0cis_encrypted\x18\x02 \x02(\x08\"D\n\x16ParticipantNameChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x0c\n\x04name\x18\x02 \x02(\t\"v\n\x1cParticipantPermissionChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x38\n\npermission\x18\x02 \x01(\x0b\x32$.livekit.proto.ParticipantPermission\"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\"\x1f\n\x0eTokenRefreshed\x12\r\n\x05token\x18\x01 \x02(\t\"\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\"\xc0\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"\xbd\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"\xc3\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\",\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\"f\n\x10\x42yteStreamOpened\x12\x34\n\x06reader\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedByteStreamReader\x12\x1c\n\x14participant_identity\x18\x02 \x02(\t\"f\n\x10TextStreamOpened\x12\x34\n\x06reader\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedTextStreamReader\x12\x1c\n\x14participant_identity\x18\x02 \x02(\t\"H\n\x12\x44\x61taTrackPublished\x12\x32\n\x05track\x18\x01 \x02(\x0b\x32#.livekit.proto.OwnedRemoteDataTrack\"#\n\x14\x44\x61taTrackUnpublished\x12\x0b\n\x03sid\x18\x01 \x02(\t*\x90\x02\n\x14SimulateScenarioKind\x12\x1d\n\x19SIMULATE_SIGNAL_RECONNECT\x10\x00\x12\x14\n\x10SIMULATE_SPEAKER\x10\x01\x12\x19\n\x15SIMULATE_NODE_FAILURE\x10\x02\x12\x19\n\x15SIMULATE_SERVER_LEAVE\x10\x03\x12\x16\n\x12SIMULATE_MIGRATION\x10\x04\x12\x16\n\x12SIMULATE_FORCE_TCP\x10\x05\x12\x16\n\x12SIMULATE_FORCE_TLS\x10\x06\x12\x1b\n\x17SIMULATE_FULL_RECONNECT\x10\x07\x12(\n$SIMULATE_DISCONNECT_SIGNAL_ON_RESUME\x10\x08*\xe4\x01\n\x13VideoEncoderBackend\x12\x18\n\x14\x45NCODER_BACKEND_AUTO\x10\x00\x12\x1c\n\x18\x45NCODER_BACKEND_SOFTWARE\x10\x01\x12\x1c\n\x18\x45NCODER_BACKEND_HARDWARE\x10\x02\x12\x19\n\x15\x45NCODER_BACKEND_NVENC\x10\x03\x12\x19\n\x15\x45NCODER_BACKEND_VAAPI\x10\x04\x12 \n\x1c\x45NCODER_BACKEND_VIDEOTOOLBOX\x10\x05\x12\x1f\n\x1b\x45NCODER_BACKEND_PRE_ENCODED\x10\x06*\xd9\x01\n\x15\x44\x65gradationPreference\x12#\n\x1f\x44\x45GRADATION_PREFERENCE_BALANCED\x10\x00\x12-\n)DEGRADATION_PREFERENCE_MAINTAIN_FRAMERATE\x10\x01\x12.\n*DEGRADATION_PREFERENCE_MAINTAIN_RESOLUTION\x10\x02\x12<\n8DEGRADATION_PREFERENCE_MAINTAIN_FRAMERATE_AND_RESOLUTION\x10\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\x1a\x11\x64\x61ta_stream.proto\x1a\x10\x64\x61ta_track.proto\"7\n\x0ePrewarmRequest\x12\x0b\n\x03url\x18\x01 \x02(\t\x12\x18\n\x10request_async_id\x18\x02 \x01(\x04\"#\n\x0fPrewarmResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"t\n\x0fPrewarmCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x33\n\nconnection\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandleH\x00\x42\t\n\x07message\"<\n\x1fPrewarmedConnectionAliveRequest\x12\x19\n\x11\x63onnection_handle\x18\x01 \x02(\x04\"1\n PrewarmedConnectionAliveResponse\x12\r\n\x05\x61live\x18\x01 \x02(\x08\"s\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\x12\x18\n\x10request_async_id\x18\x04 \x01(\x04\"#\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\"s\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\x12\x18\n\x10request_async_id\x18\x02 \x01(\x04\x12/\n\x06reason\x18\x03 \x01(\x0e\x32\x1f.livekit.proto.DisconnectReason\"&\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\"\x7f\n\x17SimulateScenarioRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\x12\x35\n\x08scenario\x18\x02 \x02(\x0e\x32#.livekit.proto.SimulateScenarioKind\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\",\n\x18SimulateScenarioResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SimulateScenarioCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x9c\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\x12\x18\n\x10request_async_id\x18\x04 \x01(\x04\"(\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\"/\n\x18ReadyForRoomEventRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\"\x1b\n\x19ReadyForRoomEventResponse\"\x81\x01\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\x12\x18\n\x10request_async_id\x18\x04 \x01(\x04\"*\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\"\xd3\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\x12\x18\n\x10request_async_id\x18\x08 \x01(\x04\"\'\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\"\xc0\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"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\"\x90\x01\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"*\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\"g\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x10\n\x08metadata\x18\x02 \x02(\t\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\",\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\"\x9e\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"\xd6\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\x12\x18\n\x10request_async_id\x18\x06 \x01(\x04\"+\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\"\x8b\x01\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\nattributes\x18\x02 \x03(\x0b\x32\x1e.livekit.proto.AttributesEntry\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\"-\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\"_\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x0c\n\x04name\x18\x02 \x02(\t\x12\x18\n\x10request_async_id\x18\x03 \x01(\x04\"(\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\"G\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\x12\x18\n\x10request_async_id\x18\x02 \x01(\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\"\x96\x04\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\x12\x19\n\x11preconnect_buffer\x18\t \x01(\x08\x12\x44\n\x17\x66rame_metadata_features\x18\n \x03(\x0e\x32#.livekit.proto.FrameMetadataFeature\x12\x18\n\x10scalability_mode\x18\x0b \x01(\t\x12\x39\n\rvideo_encoder\x18\x0c \x01(\x0e\x32\".livekit.proto.VideoEncoderBackend\x12\x44\n\x16\x64\x65gradation_preference\x18\r \x01(\x0e\x32$.livekit.proto.DegradationPreference\"=\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\"f\n\x15RoomDataStreamOptions\x12\x1f\n\x17max_payload_byte_length\x18\x01 \x01(\x04\x12,\n use_legacy_client_implementation\x18\x02 \x01(\x08\x42\x02\x18\x01\"\xa2\x03\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.E2eeOptionsB\x02\x18\x01\x12,\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfig\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\r\x12.\n\nencryption\x18\x07 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptions\x12\x1e\n\x16single_peer_connection\x18\x08 \x01(\x08\x12\x1a\n\x12\x63onnect_timeout_ms\x18\t \x01(\x04\x12\x39\n\x0b\x64\x61ta_stream\x18\n \x01(\x0b\x32$.livekit.proto.RoomDataStreamOptions\x12\x12\n\nother_sdks\x18\x0b \x01(\t\x12#\n\x1bprewarmed_connection_handle\x18\x0c \x01(\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\"\xce\x17\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\x12=\n\x12\x62yte_stream_opened\x18\" \x01(\x0b\x32\x1f.livekit.proto.ByteStreamOpenedH\x00\x12=\n\x12text_stream_opened\x18# \x01(\x0b\x32\x1f.livekit.proto.TextStreamOpenedH\x00\x12/\n\x0croom_updated\x18$ \x01(\x0b\x32\x17.livekit.proto.RoomInfoH\x00\x12(\n\x05moved\x18% \x01(\x0b\x32\x17.livekit.proto.RoomInfoH\x00\x12\x42\n\x14participants_updated\x18& \x01(\x0b\x32\".livekit.proto.ParticipantsUpdatedH\x00\x12\x62\n%participant_encryption_status_changed\x18\' \x01(\x0b\x32\x31.livekit.proto.ParticipantEncryptionStatusChangedH\x00\x12U\n\x1eparticipant_permission_changed\x18) \x01(\x0b\x32+.livekit.proto.ParticipantPermissionChangedH\x00\x12\x38\n\x0ftoken_refreshed\x18( \x01(\x0b\x32\x1d.livekit.proto.TokenRefreshedH\x00\x12>\n\x12participant_active\x18* \x01(\x0b\x32 .livekit.proto.ParticipantActiveH\x00\x12\x41\n\x14\x64\x61ta_track_published\x18+ \x01(\x0b\x32!.livekit.proto.DataTrackPublishedH\x00\x12\x45\n\x16\x64\x61ta_track_unpublished\x18, \x01(\x0b\x32#.livekit.proto.DataTrackUnpublishedH\x00\x12G\n\x17local_track_republished\x18- \x01(\x0b\x32$.livekit.proto.LocalTrackRepublishedH\x00\x42\t\n\x07message\"\xc9\x02\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\x12\x15\n\rempty_timeout\x18\x06 \x02(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\x07 \x02(\r\x12\x18\n\x10max_participants\x18\x08 \x02(\r\x12\x15\n\rcreation_time\x18\t \x02(\x03\x12\x18\n\x10num_participants\x18\n \x02(\r\x12\x16\n\x0enum_publishers\x18\x0b \x02(\r\x12\x18\n\x10\x61\x63tive_recording\x18\x0c \x02(\x08\"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\"K\n\x13ParticipantsUpdated\x12\x34\n\x0cparticipants\x18\x01 \x03(\x0b\x32\x1e.livekit.proto.ParticipantInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"1\n\x11ParticipantActive\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\"s\n\x17ParticipantDisconnected\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12:\n\x11\x64isconnect_reason\x18\x02 \x02(\x0e\x32\x1f.livekit.proto.DisconnectReason\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x02(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x02(\t\"|\n\x15LocalTrackRepublished\x12\x1a\n\x12publication_handle\x18\x01 \x02(\x04\x12\x14\n\x0cprevious_sid\x18\x02 \x02(\t\x12\x31\n\x04info\x18\x03 \x02(\x0b\x32#.livekit.proto.TrackPublicationInfo\")\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\"X\n\"ParticipantEncryptionStatusChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x14\n\x0cis_encrypted\x18\x02 \x02(\x08\"D\n\x16ParticipantNameChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x0c\n\x04name\x18\x02 \x02(\t\"v\n\x1cParticipantPermissionChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x38\n\npermission\x18\x02 \x01(\x0b\x32$.livekit.proto.ParticipantPermission\"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\"\x1f\n\x0eTokenRefreshed\x12\r\n\x05token\x18\x01 \x02(\t\"\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\"\xc0\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"\xbd\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\"\xc3\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\x12\x18\n\x10request_async_id\x18\x05 \x01(\x04\",\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\"f\n\x10\x42yteStreamOpened\x12\x34\n\x06reader\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedByteStreamReader\x12\x1c\n\x14participant_identity\x18\x02 \x02(\t\"f\n\x10TextStreamOpened\x12\x34\n\x06reader\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedTextStreamReader\x12\x1c\n\x14participant_identity\x18\x02 \x02(\t\"H\n\x12\x44\x61taTrackPublished\x12\x32\n\x05track\x18\x01 \x02(\x0b\x32#.livekit.proto.OwnedRemoteDataTrack\"#\n\x14\x44\x61taTrackUnpublished\x12\x0b\n\x03sid\x18\x01 \x02(\t*\x90\x02\n\x14SimulateScenarioKind\x12\x1d\n\x19SIMULATE_SIGNAL_RECONNECT\x10\x00\x12\x14\n\x10SIMULATE_SPEAKER\x10\x01\x12\x19\n\x15SIMULATE_NODE_FAILURE\x10\x02\x12\x19\n\x15SIMULATE_SERVER_LEAVE\x10\x03\x12\x16\n\x12SIMULATE_MIGRATION\x10\x04\x12\x16\n\x12SIMULATE_FORCE_TCP\x10\x05\x12\x16\n\x12SIMULATE_FORCE_TLS\x10\x06\x12\x1b\n\x17SIMULATE_FULL_RECONNECT\x10\x07\x12(\n$SIMULATE_DISCONNECT_SIGNAL_ON_RESUME\x10\x08*\xe4\x01\n\x13VideoEncoderBackend\x12\x18\n\x14\x45NCODER_BACKEND_AUTO\x10\x00\x12\x1c\n\x18\x45NCODER_BACKEND_SOFTWARE\x10\x01\x12\x1c\n\x18\x45NCODER_BACKEND_HARDWARE\x10\x02\x12\x19\n\x15\x45NCODER_BACKEND_NVENC\x10\x03\x12\x19\n\x15\x45NCODER_BACKEND_VAAPI\x10\x04\x12 \n\x1c\x45NCODER_BACKEND_VIDEOTOOLBOX\x10\x05\x12\x1f\n\x1b\x45NCODER_BACKEND_PRE_ENCODED\x10\x06*\xd9\x01\n\x15\x44\x65gradationPreference\x12#\n\x1f\x44\x45GRADATION_PREFERENCE_BALANCED\x10\x00\x12-\n)DEGRADATION_PREFERENCE_MAINTAIN_FRAMERATE\x10\x01\x12.\n*DEGRADATION_PREFERENCE_MAINTAIN_RESOLUTION\x10\x02\x12<\n8DEGRADATION_PREFERENCE_MAINTAIN_FRAMERATE_AND_RESOLUTION\x10\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) @@ -32,280 +32,292 @@ _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._options = None _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._serialized_options = b'\030\001' + _globals['_ROOMDATASTREAMOPTIONS'].fields_by_name['use_legacy_client_implementation']._options = None + _globals['_ROOMDATASTREAMOPTIONS'].fields_by_name['use_legacy_client_implementation']._serialized_options = b'\030\001' _globals['_ROOMOPTIONS'].fields_by_name['e2ee']._options = None _globals['_ROOMOPTIONS'].fields_by_name['e2ee']._serialized_options = b'\030\001' _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._options = None _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._options = None _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_SIMULATESCENARIOKIND']._serialized_start=15207 - _globals['_SIMULATESCENARIOKIND']._serialized_end=15479 - _globals['_VIDEOENCODERBACKEND']._serialized_start=15482 - _globals['_VIDEOENCODERBACKEND']._serialized_end=15710 - _globals['_DEGRADATIONPREFERENCE']._serialized_start=15713 - _globals['_DEGRADATIONPREFERENCE']._serialized_end=15930 - _globals['_ICETRANSPORTTYPE']._serialized_start=15932 - _globals['_ICETRANSPORTTYPE']._serialized_end=16012 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=16014 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=16081 - _globals['_CONNECTIONQUALITY']._serialized_start=16083 - _globals['_CONNECTIONQUALITY']._serialized_end=16179 - _globals['_CONNECTIONSTATE']._serialized_start=16181 - _globals['_CONNECTIONSTATE']._serialized_end=16264 - _globals['_DATAPACKETKIND']._serialized_start=16266 - _globals['_DATAPACKETKIND']._serialized_end=16317 - _globals['_CONNECTREQUEST']._serialized_start=156 - _globals['_CONNECTREQUEST']._serialized_end=271 - _globals['_CONNECTRESPONSE']._serialized_start=273 - _globals['_CONNECTRESPONSE']._serialized_end=308 - _globals['_CONNECTCALLBACK']._serialized_start=311 - _globals['_CONNECTCALLBACK']._serialized_end=758 - _globals['_CONNECTCALLBACK_PARTICIPANTWITHTRACKS']._serialized_start=423 - _globals['_CONNECTCALLBACK_PARTICIPANTWITHTRACKS']._serialized_end=560 - _globals['_CONNECTCALLBACK_RESULT']._serialized_start=563 - _globals['_CONNECTCALLBACK_RESULT']._serialized_end=747 - _globals['_DISCONNECTREQUEST']._serialized_start=760 - _globals['_DISCONNECTREQUEST']._serialized_end=875 - _globals['_DISCONNECTRESPONSE']._serialized_start=877 - _globals['_DISCONNECTRESPONSE']._serialized_end=915 - _globals['_DISCONNECTCALLBACK']._serialized_start=917 - _globals['_DISCONNECTCALLBACK']._serialized_end=955 - _globals['_SIMULATESCENARIOREQUEST']._serialized_start=957 - _globals['_SIMULATESCENARIOREQUEST']._serialized_end=1084 - _globals['_SIMULATESCENARIORESPONSE']._serialized_start=1086 - _globals['_SIMULATESCENARIORESPONSE']._serialized_end=1130 - _globals['_SIMULATESCENARIOCALLBACK']._serialized_start=1132 - _globals['_SIMULATESCENARIOCALLBACK']._serialized_end=1191 - _globals['_PUBLISHTRACKREQUEST']._serialized_start=1194 - _globals['_PUBLISHTRACKREQUEST']._serialized_end=1350 - _globals['_PUBLISHTRACKRESPONSE']._serialized_start=1352 - _globals['_PUBLISHTRACKRESPONSE']._serialized_end=1392 - _globals['_PUBLISHTRACKCALLBACK']._serialized_start=1395 - _globals['_PUBLISHTRACKCALLBACK']._serialized_end=1524 - _globals['_READYFORROOMEVENTREQUEST']._serialized_start=1526 - _globals['_READYFORROOMEVENTREQUEST']._serialized_end=1573 - _globals['_READYFORROOMEVENTRESPONSE']._serialized_start=1575 - _globals['_READYFORROOMEVENTRESPONSE']._serialized_end=1602 - _globals['_UNPUBLISHTRACKREQUEST']._serialized_start=1605 - _globals['_UNPUBLISHTRACKREQUEST']._serialized_end=1734 - _globals['_UNPUBLISHTRACKRESPONSE']._serialized_start=1736 - _globals['_UNPUBLISHTRACKRESPONSE']._serialized_end=1778 - _globals['_UNPUBLISHTRACKCALLBACK']._serialized_start=1780 - _globals['_UNPUBLISHTRACKCALLBACK']._serialized_end=1837 - _globals['_PUBLISHDATAREQUEST']._serialized_start=1840 - _globals['_PUBLISHDATAREQUEST']._serialized_end=2051 - _globals['_PUBLISHDATARESPONSE']._serialized_start=2053 - _globals['_PUBLISHDATARESPONSE']._serialized_end=2092 - _globals['_PUBLISHDATACALLBACK']._serialized_start=2094 - _globals['_PUBLISHDATACALLBACK']._serialized_end=2148 - _globals['_PUBLISHTRANSCRIPTIONREQUEST']._serialized_start=2151 - _globals['_PUBLISHTRANSCRIPTIONREQUEST']._serialized_end=2343 - _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_start=2345 - _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_end=2393 - _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_start=2395 - _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_end=2458 - _globals['_PUBLISHSIPDTMFREQUEST']._serialized_start=2461 - _globals['_PUBLISHSIPDTMFREQUEST']._serialized_end=2605 - _globals['_PUBLISHSIPDTMFRESPONSE']._serialized_start=2607 - _globals['_PUBLISHSIPDTMFRESPONSE']._serialized_end=2649 - _globals['_PUBLISHSIPDTMFCALLBACK']._serialized_start=2651 - _globals['_PUBLISHSIPDTMFCALLBACK']._serialized_end=2708 - _globals['_SETLOCALMETADATAREQUEST']._serialized_start=2710 - _globals['_SETLOCALMETADATAREQUEST']._serialized_end=2813 - _globals['_SETLOCALMETADATARESPONSE']._serialized_start=2815 - _globals['_SETLOCALMETADATARESPONSE']._serialized_end=2859 - _globals['_SETLOCALMETADATACALLBACK']._serialized_start=2861 - _globals['_SETLOCALMETADATACALLBACK']._serialized_end=2920 - _globals['_SENDCHATMESSAGEREQUEST']._serialized_start=2923 - _globals['_SENDCHATMESSAGEREQUEST']._serialized_end=3081 - _globals['_EDITCHATMESSAGEREQUEST']._serialized_start=3084 - _globals['_EDITCHATMESSAGEREQUEST']._serialized_end=3298 - _globals['_SENDCHATMESSAGERESPONSE']._serialized_start=3300 - _globals['_SENDCHATMESSAGERESPONSE']._serialized_end=3343 - _globals['_SENDCHATMESSAGECALLBACK']._serialized_start=3345 - _globals['_SENDCHATMESSAGECALLBACK']._serialized_end=3468 - _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_start=3471 - _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_end=3610 - _globals['_ATTRIBUTESENTRY']._serialized_start=3612 - _globals['_ATTRIBUTESENTRY']._serialized_end=3657 - _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_start=3659 - _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_end=3705 - _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_start=3707 - _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_end=3768 - _globals['_SETLOCALNAMEREQUEST']._serialized_start=3770 - _globals['_SETLOCALNAMEREQUEST']._serialized_end=3865 - _globals['_SETLOCALNAMERESPONSE']._serialized_start=3867 - _globals['_SETLOCALNAMERESPONSE']._serialized_end=3907 - _globals['_SETLOCALNAMECALLBACK']._serialized_start=3909 - _globals['_SETLOCALNAMECALLBACK']._serialized_end=3964 - _globals['_SETSUBSCRIBEDREQUEST']._serialized_start=3966 - _globals['_SETSUBSCRIBEDREQUEST']._serialized_end=4035 - _globals['_SETSUBSCRIBEDRESPONSE']._serialized_start=4037 - _globals['_SETSUBSCRIBEDRESPONSE']._serialized_end=4060 - _globals['_GETSESSIONSTATSREQUEST']._serialized_start=4062 - _globals['_GETSESSIONSTATSREQUEST']._serialized_end=4133 - _globals['_GETSESSIONSTATSRESPONSE']._serialized_start=4135 - _globals['_GETSESSIONSTATSRESPONSE']._serialized_end=4178 - _globals['_GETSESSIONSTATSCALLBACK']._serialized_start=4181 - _globals['_GETSESSIONSTATSCALLBACK']._serialized_end=4428 - _globals['_GETSESSIONSTATSCALLBACK_RESULT']._serialized_start=4308 - _globals['_GETSESSIONSTATSCALLBACK_RESULT']._serialized_end=4417 - _globals['_VIDEOENCODING']._serialized_start=4430 - _globals['_VIDEOENCODING']._serialized_end=4489 - _globals['_AUDIOENCODING']._serialized_start=4491 - _globals['_AUDIOENCODING']._serialized_end=4527 - _globals['_TRACKPUBLISHOPTIONS']._serialized_start=4530 - _globals['_TRACKPUBLISHOPTIONS']._serialized_end=5064 - _globals['_ICESERVER']._serialized_start=5066 - _globals['_ICESERVER']._serialized_end=5127 - _globals['_RTCCONFIG']._serialized_start=5130 - _globals['_RTCCONFIG']._serialized_end=5326 - _globals['_ROOMDATASTREAMOPTIONS']._serialized_start=5328 - _globals['_ROOMDATASTREAMOPTIONS']._serialized_end=5426 - _globals['_ROOMOPTIONS']._serialized_start=5429 - _globals['_ROOMOPTIONS']._serialized_end=5810 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=5812 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=5931 - _globals['_BUFFERINFO']._serialized_start=5933 - _globals['_BUFFERINFO']._serialized_end=5981 - _globals['_OWNEDBUFFER']._serialized_start=5983 - _globals['_OWNEDBUFFER']._serialized_end=6084 - _globals['_ROOMEVENT']._serialized_start=6087 - _globals['_ROOMEVENT']._serialized_end=9109 - _globals['_ROOMINFO']._serialized_start=9112 - _globals['_ROOMINFO']._serialized_end=9441 - _globals['_OWNEDROOM']._serialized_start=9443 - _globals['_OWNEDROOM']._serialized_end=9540 - _globals['_PARTICIPANTSUPDATED']._serialized_start=9542 - _globals['_PARTICIPANTSUPDATED']._serialized_end=9617 - _globals['_PARTICIPANTCONNECTED']._serialized_start=9619 - _globals['_PARTICIPANTCONNECTED']._serialized_end=9688 - _globals['_PARTICIPANTACTIVE']._serialized_start=9690 - _globals['_PARTICIPANTACTIVE']._serialized_end=9739 - _globals['_PARTICIPANTDISCONNECTED']._serialized_start=9741 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=9856 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=9858 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=9898 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=9900 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=9948 - _globals['_LOCALTRACKREPUBLISHED']._serialized_start=9950 - _globals['_LOCALTRACKREPUBLISHED']._serialized_end=10074 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=10076 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=10117 - _globals['_TRACKPUBLISHED']._serialized_start=10119 - _globals['_TRACKPUBLISHED']._serialized_end=10224 - _globals['_TRACKUNPUBLISHED']._serialized_start=10226 - _globals['_TRACKUNPUBLISHED']._serialized_end=10299 - _globals['_TRACKSUBSCRIBED']._serialized_start=10301 - _globals['_TRACKSUBSCRIBED']._serialized_end=10390 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=10392 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=10460 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=10462 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=10551 - _globals['_TRACKMUTED']._serialized_start=10553 - _globals['_TRACKMUTED']._serialized_end=10614 - _globals['_TRACKUNMUTED']._serialized_start=10616 - _globals['_TRACKUNMUTED']._serialized_end=10679 - _globals['_E2EESTATECHANGED']._serialized_start=10681 - _globals['_E2EESTATECHANGED']._serialized_end=10776 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=10778 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=10833 - _globals['_ROOMMETADATACHANGED']._serialized_start=10835 - _globals['_ROOMMETADATACHANGED']._serialized_end=10874 - _globals['_ROOMSIDCHANGED']._serialized_start=10876 - _globals['_ROOMSIDCHANGED']._serialized_end=10905 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=10907 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=10983 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=10986 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=11158 - _globals['_PARTICIPANTENCRYPTIONSTATUSCHANGED']._serialized_start=11160 - _globals['_PARTICIPANTENCRYPTIONSTATUSCHANGED']._serialized_end=11248 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=11250 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=11318 - _globals['_PARTICIPANTPERMISSIONCHANGED']._serialized_start=11320 - _globals['_PARTICIPANTPERMISSIONCHANGED']._serialized_end=11438 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=11440 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=11547 - _globals['_USERPACKET']._serialized_start=11549 - _globals['_USERPACKET']._serialized_end=11618 - _globals['_CHATMESSAGE']._serialized_start=11620 - _globals['_CHATMESSAGE']._serialized_end=11741 - _globals['_CHATMESSAGERECEIVED']._serialized_start=11743 - _globals['_CHATMESSAGERECEIVED']._serialized_end=11839 - _globals['_SIPDTMF']._serialized_start=11841 - _globals['_SIPDTMF']._serialized_end=11879 - _globals['_DATAPACKETRECEIVED']._serialized_start=11882 - _globals['_DATAPACKETRECEIVED']._serialized_end=12073 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=12075 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=12202 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=12204 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=12275 - _globals['_CONNECTED']._serialized_start=12277 - _globals['_CONNECTED']._serialized_end=12288 - _globals['_DISCONNECTED']._serialized_start=12290 - _globals['_DISCONNECTED']._serialized_end=12353 - _globals['_RECONNECTING']._serialized_start=12355 - _globals['_RECONNECTING']._serialized_end=12369 - _globals['_RECONNECTED']._serialized_start=12371 - _globals['_RECONNECTED']._serialized_end=12384 - _globals['_TOKENREFRESHED']._serialized_start=12386 - _globals['_TOKENREFRESHED']._serialized_end=12417 - _globals['_ROOMEOS']._serialized_start=12419 - _globals['_ROOMEOS']._serialized_end=12428 - _globals['_DATASTREAM']._serialized_start=12431 - _globals['_DATASTREAM']._serialized_end=13341 - _globals['_DATASTREAM_TEXTHEADER']._serialized_start=12446 - _globals['_DATASTREAM_TEXTHEADER']._serialized_end=12616 - _globals['_DATASTREAM_BYTEHEADER']._serialized_start=12618 - _globals['_DATASTREAM_BYTEHEADER']._serialized_end=12644 - _globals['_DATASTREAM_HEADER']._serialized_start=12647 - _globals['_DATASTREAM_HEADER']._serialized_end=13010 - _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_start=12943 - _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_end=12992 - _globals['_DATASTREAM_CHUNK']._serialized_start=13012 - _globals['_DATASTREAM_CHUNK']._serialized_end=13105 - _globals['_DATASTREAM_TRAILER']._serialized_start=13108 - _globals['_DATASTREAM_TRAILER']._serialized_end=13274 - _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_start=12943 - _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_end=12992 - _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=13276 - _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=13341 - _globals['_DATASTREAMHEADERRECEIVED']._serialized_start=13343 - _globals['_DATASTREAMHEADERRECEIVED']._serialized_end=13449 - _globals['_DATASTREAMCHUNKRECEIVED']._serialized_start=13451 - _globals['_DATASTREAMCHUNKRECEIVED']._serialized_end=13554 - _globals['_DATASTREAMTRAILERRECEIVED']._serialized_start=13556 - _globals['_DATASTREAMTRAILERRECEIVED']._serialized_end=13665 - _globals['_SENDSTREAMHEADERREQUEST']._serialized_start=13668 - _globals['_SENDSTREAMHEADERREQUEST']._serialized_end=13860 - _globals['_SENDSTREAMCHUNKREQUEST']._serialized_start=13863 - _globals['_SENDSTREAMCHUNKREQUEST']._serialized_end=14052 - _globals['_SENDSTREAMTRAILERREQUEST']._serialized_start=14055 - _globals['_SENDSTREAMTRAILERREQUEST']._serialized_end=14250 - _globals['_SENDSTREAMHEADERRESPONSE']._serialized_start=14252 - _globals['_SENDSTREAMHEADERRESPONSE']._serialized_end=14296 - _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_start=14298 - _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_end=14341 - _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_start=14343 - _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_end=14388 - _globals['_SENDSTREAMHEADERCALLBACK']._serialized_start=14390 - _globals['_SENDSTREAMHEADERCALLBACK']._serialized_end=14449 - _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_start=14451 - _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_end=14509 - _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_start=14511 - _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_end=14571 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_start=14574 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_end=14721 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_start=14723 - _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_end=14773 - _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_start=14775 - _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_end=14885 - _globals['_BYTESTREAMOPENED']._serialized_start=14887 - _globals['_BYTESTREAMOPENED']._serialized_end=14989 - _globals['_TEXTSTREAMOPENED']._serialized_start=14991 - _globals['_TEXTSTREAMOPENED']._serialized_end=15093 - _globals['_DATATRACKPUBLISHED']._serialized_start=15095 - _globals['_DATATRACKPUBLISHED']._serialized_end=15167 - _globals['_DATATRACKUNPUBLISHED']._serialized_start=15169 - _globals['_DATATRACKUNPUBLISHED']._serialized_end=15204 + _globals['_SIMULATESCENARIOKIND']._serialized_start=15573 + _globals['_SIMULATESCENARIOKIND']._serialized_end=15845 + _globals['_VIDEOENCODERBACKEND']._serialized_start=15848 + _globals['_VIDEOENCODERBACKEND']._serialized_end=16076 + _globals['_DEGRADATIONPREFERENCE']._serialized_start=16079 + _globals['_DEGRADATIONPREFERENCE']._serialized_end=16296 + _globals['_ICETRANSPORTTYPE']._serialized_start=16298 + _globals['_ICETRANSPORTTYPE']._serialized_end=16378 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=16380 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=16447 + _globals['_CONNECTIONQUALITY']._serialized_start=16449 + _globals['_CONNECTIONQUALITY']._serialized_end=16545 + _globals['_CONNECTIONSTATE']._serialized_start=16547 + _globals['_CONNECTIONSTATE']._serialized_end=16630 + _globals['_DATAPACKETKIND']._serialized_start=16632 + _globals['_DATAPACKETKIND']._serialized_end=16683 + _globals['_PREWARMREQUEST']._serialized_start=156 + _globals['_PREWARMREQUEST']._serialized_end=211 + _globals['_PREWARMRESPONSE']._serialized_start=213 + _globals['_PREWARMRESPONSE']._serialized_end=248 + _globals['_PREWARMCALLBACK']._serialized_start=250 + _globals['_PREWARMCALLBACK']._serialized_end=366 + _globals['_PREWARMEDCONNECTIONALIVEREQUEST']._serialized_start=368 + _globals['_PREWARMEDCONNECTIONALIVEREQUEST']._serialized_end=428 + _globals['_PREWARMEDCONNECTIONALIVERESPONSE']._serialized_start=430 + _globals['_PREWARMEDCONNECTIONALIVERESPONSE']._serialized_end=479 + _globals['_CONNECTREQUEST']._serialized_start=481 + _globals['_CONNECTREQUEST']._serialized_end=596 + _globals['_CONNECTRESPONSE']._serialized_start=598 + _globals['_CONNECTRESPONSE']._serialized_end=633 + _globals['_CONNECTCALLBACK']._serialized_start=636 + _globals['_CONNECTCALLBACK']._serialized_end=1083 + _globals['_CONNECTCALLBACK_PARTICIPANTWITHTRACKS']._serialized_start=748 + _globals['_CONNECTCALLBACK_PARTICIPANTWITHTRACKS']._serialized_end=885 + _globals['_CONNECTCALLBACK_RESULT']._serialized_start=888 + _globals['_CONNECTCALLBACK_RESULT']._serialized_end=1072 + _globals['_DISCONNECTREQUEST']._serialized_start=1085 + _globals['_DISCONNECTREQUEST']._serialized_end=1200 + _globals['_DISCONNECTRESPONSE']._serialized_start=1202 + _globals['_DISCONNECTRESPONSE']._serialized_end=1240 + _globals['_DISCONNECTCALLBACK']._serialized_start=1242 + _globals['_DISCONNECTCALLBACK']._serialized_end=1280 + _globals['_SIMULATESCENARIOREQUEST']._serialized_start=1282 + _globals['_SIMULATESCENARIOREQUEST']._serialized_end=1409 + _globals['_SIMULATESCENARIORESPONSE']._serialized_start=1411 + _globals['_SIMULATESCENARIORESPONSE']._serialized_end=1455 + _globals['_SIMULATESCENARIOCALLBACK']._serialized_start=1457 + _globals['_SIMULATESCENARIOCALLBACK']._serialized_end=1516 + _globals['_PUBLISHTRACKREQUEST']._serialized_start=1519 + _globals['_PUBLISHTRACKREQUEST']._serialized_end=1675 + _globals['_PUBLISHTRACKRESPONSE']._serialized_start=1677 + _globals['_PUBLISHTRACKRESPONSE']._serialized_end=1717 + _globals['_PUBLISHTRACKCALLBACK']._serialized_start=1720 + _globals['_PUBLISHTRACKCALLBACK']._serialized_end=1849 + _globals['_READYFORROOMEVENTREQUEST']._serialized_start=1851 + _globals['_READYFORROOMEVENTREQUEST']._serialized_end=1898 + _globals['_READYFORROOMEVENTRESPONSE']._serialized_start=1900 + _globals['_READYFORROOMEVENTRESPONSE']._serialized_end=1927 + _globals['_UNPUBLISHTRACKREQUEST']._serialized_start=1930 + _globals['_UNPUBLISHTRACKREQUEST']._serialized_end=2059 + _globals['_UNPUBLISHTRACKRESPONSE']._serialized_start=2061 + _globals['_UNPUBLISHTRACKRESPONSE']._serialized_end=2103 + _globals['_UNPUBLISHTRACKCALLBACK']._serialized_start=2105 + _globals['_UNPUBLISHTRACKCALLBACK']._serialized_end=2162 + _globals['_PUBLISHDATAREQUEST']._serialized_start=2165 + _globals['_PUBLISHDATAREQUEST']._serialized_end=2376 + _globals['_PUBLISHDATARESPONSE']._serialized_start=2378 + _globals['_PUBLISHDATARESPONSE']._serialized_end=2417 + _globals['_PUBLISHDATACALLBACK']._serialized_start=2419 + _globals['_PUBLISHDATACALLBACK']._serialized_end=2473 + _globals['_PUBLISHTRANSCRIPTIONREQUEST']._serialized_start=2476 + _globals['_PUBLISHTRANSCRIPTIONREQUEST']._serialized_end=2668 + _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_start=2670 + _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_end=2718 + _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_start=2720 + _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_end=2783 + _globals['_PUBLISHSIPDTMFREQUEST']._serialized_start=2786 + _globals['_PUBLISHSIPDTMFREQUEST']._serialized_end=2930 + _globals['_PUBLISHSIPDTMFRESPONSE']._serialized_start=2932 + _globals['_PUBLISHSIPDTMFRESPONSE']._serialized_end=2974 + _globals['_PUBLISHSIPDTMFCALLBACK']._serialized_start=2976 + _globals['_PUBLISHSIPDTMFCALLBACK']._serialized_end=3033 + _globals['_SETLOCALMETADATAREQUEST']._serialized_start=3035 + _globals['_SETLOCALMETADATAREQUEST']._serialized_end=3138 + _globals['_SETLOCALMETADATARESPONSE']._serialized_start=3140 + _globals['_SETLOCALMETADATARESPONSE']._serialized_end=3184 + _globals['_SETLOCALMETADATACALLBACK']._serialized_start=3186 + _globals['_SETLOCALMETADATACALLBACK']._serialized_end=3245 + _globals['_SENDCHATMESSAGEREQUEST']._serialized_start=3248 + _globals['_SENDCHATMESSAGEREQUEST']._serialized_end=3406 + _globals['_EDITCHATMESSAGEREQUEST']._serialized_start=3409 + _globals['_EDITCHATMESSAGEREQUEST']._serialized_end=3623 + _globals['_SENDCHATMESSAGERESPONSE']._serialized_start=3625 + _globals['_SENDCHATMESSAGERESPONSE']._serialized_end=3668 + _globals['_SENDCHATMESSAGECALLBACK']._serialized_start=3670 + _globals['_SENDCHATMESSAGECALLBACK']._serialized_end=3793 + _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_start=3796 + _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_end=3935 + _globals['_ATTRIBUTESENTRY']._serialized_start=3937 + _globals['_ATTRIBUTESENTRY']._serialized_end=3982 + _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_start=3984 + _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_end=4030 + _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_start=4032 + _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_end=4093 + _globals['_SETLOCALNAMEREQUEST']._serialized_start=4095 + _globals['_SETLOCALNAMEREQUEST']._serialized_end=4190 + _globals['_SETLOCALNAMERESPONSE']._serialized_start=4192 + _globals['_SETLOCALNAMERESPONSE']._serialized_end=4232 + _globals['_SETLOCALNAMECALLBACK']._serialized_start=4234 + _globals['_SETLOCALNAMECALLBACK']._serialized_end=4289 + _globals['_SETSUBSCRIBEDREQUEST']._serialized_start=4291 + _globals['_SETSUBSCRIBEDREQUEST']._serialized_end=4360 + _globals['_SETSUBSCRIBEDRESPONSE']._serialized_start=4362 + _globals['_SETSUBSCRIBEDRESPONSE']._serialized_end=4385 + _globals['_GETSESSIONSTATSREQUEST']._serialized_start=4387 + _globals['_GETSESSIONSTATSREQUEST']._serialized_end=4458 + _globals['_GETSESSIONSTATSRESPONSE']._serialized_start=4460 + _globals['_GETSESSIONSTATSRESPONSE']._serialized_end=4503 + _globals['_GETSESSIONSTATSCALLBACK']._serialized_start=4506 + _globals['_GETSESSIONSTATSCALLBACK']._serialized_end=4753 + _globals['_GETSESSIONSTATSCALLBACK_RESULT']._serialized_start=4633 + _globals['_GETSESSIONSTATSCALLBACK_RESULT']._serialized_end=4742 + _globals['_VIDEOENCODING']._serialized_start=4755 + _globals['_VIDEOENCODING']._serialized_end=4814 + _globals['_AUDIOENCODING']._serialized_start=4816 + _globals['_AUDIOENCODING']._serialized_end=4852 + _globals['_TRACKPUBLISHOPTIONS']._serialized_start=4855 + _globals['_TRACKPUBLISHOPTIONS']._serialized_end=5389 + _globals['_ICESERVER']._serialized_start=5391 + _globals['_ICESERVER']._serialized_end=5452 + _globals['_RTCCONFIG']._serialized_start=5455 + _globals['_RTCCONFIG']._serialized_end=5651 + _globals['_ROOMDATASTREAMOPTIONS']._serialized_start=5653 + _globals['_ROOMDATASTREAMOPTIONS']._serialized_end=5755 + _globals['_ROOMOPTIONS']._serialized_start=5758 + _globals['_ROOMOPTIONS']._serialized_end=6176 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=6178 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=6297 + _globals['_BUFFERINFO']._serialized_start=6299 + _globals['_BUFFERINFO']._serialized_end=6347 + _globals['_OWNEDBUFFER']._serialized_start=6349 + _globals['_OWNEDBUFFER']._serialized_end=6450 + _globals['_ROOMEVENT']._serialized_start=6453 + _globals['_ROOMEVENT']._serialized_end=9475 + _globals['_ROOMINFO']._serialized_start=9478 + _globals['_ROOMINFO']._serialized_end=9807 + _globals['_OWNEDROOM']._serialized_start=9809 + _globals['_OWNEDROOM']._serialized_end=9906 + _globals['_PARTICIPANTSUPDATED']._serialized_start=9908 + _globals['_PARTICIPANTSUPDATED']._serialized_end=9983 + _globals['_PARTICIPANTCONNECTED']._serialized_start=9985 + _globals['_PARTICIPANTCONNECTED']._serialized_end=10054 + _globals['_PARTICIPANTACTIVE']._serialized_start=10056 + _globals['_PARTICIPANTACTIVE']._serialized_end=10105 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=10107 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=10222 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=10224 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=10264 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=10266 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=10314 + _globals['_LOCALTRACKREPUBLISHED']._serialized_start=10316 + _globals['_LOCALTRACKREPUBLISHED']._serialized_end=10440 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=10442 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=10483 + _globals['_TRACKPUBLISHED']._serialized_start=10485 + _globals['_TRACKPUBLISHED']._serialized_end=10590 + _globals['_TRACKUNPUBLISHED']._serialized_start=10592 + _globals['_TRACKUNPUBLISHED']._serialized_end=10665 + _globals['_TRACKSUBSCRIBED']._serialized_start=10667 + _globals['_TRACKSUBSCRIBED']._serialized_end=10756 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=10758 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=10826 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=10828 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=10917 + _globals['_TRACKMUTED']._serialized_start=10919 + _globals['_TRACKMUTED']._serialized_end=10980 + _globals['_TRACKUNMUTED']._serialized_start=10982 + _globals['_TRACKUNMUTED']._serialized_end=11045 + _globals['_E2EESTATECHANGED']._serialized_start=11047 + _globals['_E2EESTATECHANGED']._serialized_end=11142 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=11144 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=11199 + _globals['_ROOMMETADATACHANGED']._serialized_start=11201 + _globals['_ROOMMETADATACHANGED']._serialized_end=11240 + _globals['_ROOMSIDCHANGED']._serialized_start=11242 + _globals['_ROOMSIDCHANGED']._serialized_end=11271 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=11273 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=11349 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=11352 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=11524 + _globals['_PARTICIPANTENCRYPTIONSTATUSCHANGED']._serialized_start=11526 + _globals['_PARTICIPANTENCRYPTIONSTATUSCHANGED']._serialized_end=11614 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=11616 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=11684 + _globals['_PARTICIPANTPERMISSIONCHANGED']._serialized_start=11686 + _globals['_PARTICIPANTPERMISSIONCHANGED']._serialized_end=11804 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=11806 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=11913 + _globals['_USERPACKET']._serialized_start=11915 + _globals['_USERPACKET']._serialized_end=11984 + _globals['_CHATMESSAGE']._serialized_start=11986 + _globals['_CHATMESSAGE']._serialized_end=12107 + _globals['_CHATMESSAGERECEIVED']._serialized_start=12109 + _globals['_CHATMESSAGERECEIVED']._serialized_end=12205 + _globals['_SIPDTMF']._serialized_start=12207 + _globals['_SIPDTMF']._serialized_end=12245 + _globals['_DATAPACKETRECEIVED']._serialized_start=12248 + _globals['_DATAPACKETRECEIVED']._serialized_end=12439 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=12441 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=12568 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=12570 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=12641 + _globals['_CONNECTED']._serialized_start=12643 + _globals['_CONNECTED']._serialized_end=12654 + _globals['_DISCONNECTED']._serialized_start=12656 + _globals['_DISCONNECTED']._serialized_end=12719 + _globals['_RECONNECTING']._serialized_start=12721 + _globals['_RECONNECTING']._serialized_end=12735 + _globals['_RECONNECTED']._serialized_start=12737 + _globals['_RECONNECTED']._serialized_end=12750 + _globals['_TOKENREFRESHED']._serialized_start=12752 + _globals['_TOKENREFRESHED']._serialized_end=12783 + _globals['_ROOMEOS']._serialized_start=12785 + _globals['_ROOMEOS']._serialized_end=12794 + _globals['_DATASTREAM']._serialized_start=12797 + _globals['_DATASTREAM']._serialized_end=13707 + _globals['_DATASTREAM_TEXTHEADER']._serialized_start=12812 + _globals['_DATASTREAM_TEXTHEADER']._serialized_end=12982 + _globals['_DATASTREAM_BYTEHEADER']._serialized_start=12984 + _globals['_DATASTREAM_BYTEHEADER']._serialized_end=13010 + _globals['_DATASTREAM_HEADER']._serialized_start=13013 + _globals['_DATASTREAM_HEADER']._serialized_end=13376 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_start=13309 + _globals['_DATASTREAM_HEADER_ATTRIBUTESENTRY']._serialized_end=13358 + _globals['_DATASTREAM_CHUNK']._serialized_start=13378 + _globals['_DATASTREAM_CHUNK']._serialized_end=13471 + _globals['_DATASTREAM_TRAILER']._serialized_start=13474 + _globals['_DATASTREAM_TRAILER']._serialized_end=13640 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_start=13309 + _globals['_DATASTREAM_TRAILER_ATTRIBUTESENTRY']._serialized_end=13358 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=13642 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=13707 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_start=13709 + _globals['_DATASTREAMHEADERRECEIVED']._serialized_end=13815 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_start=13817 + _globals['_DATASTREAMCHUNKRECEIVED']._serialized_end=13920 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_start=13922 + _globals['_DATASTREAMTRAILERRECEIVED']._serialized_end=14031 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_start=14034 + _globals['_SENDSTREAMHEADERREQUEST']._serialized_end=14226 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_start=14229 + _globals['_SENDSTREAMCHUNKREQUEST']._serialized_end=14418 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_start=14421 + _globals['_SENDSTREAMTRAILERREQUEST']._serialized_end=14616 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_start=14618 + _globals['_SENDSTREAMHEADERRESPONSE']._serialized_end=14662 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_start=14664 + _globals['_SENDSTREAMCHUNKRESPONSE']._serialized_end=14707 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_start=14709 + _globals['_SENDSTREAMTRAILERRESPONSE']._serialized_end=14754 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_start=14756 + _globals['_SENDSTREAMHEADERCALLBACK']._serialized_end=14815 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_start=14817 + _globals['_SENDSTREAMCHUNKCALLBACK']._serialized_end=14875 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_start=14877 + _globals['_SENDSTREAMTRAILERCALLBACK']._serialized_end=14937 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_start=14940 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDREQUEST']._serialized_end=15087 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_start=15089 + _globals['_SETDATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDRESPONSE']._serialized_end=15139 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_start=15141 + _globals['_DATACHANNELBUFFEREDAMOUNTLOWTHRESHOLDCHANGED']._serialized_end=15251 + _globals['_BYTESTREAMOPENED']._serialized_start=15253 + _globals['_BYTESTREAMOPENED']._serialized_end=15355 + _globals['_TEXTSTREAMOPENED']._serialized_start=15357 + _globals['_TEXTSTREAMOPENED']._serialized_end=15459 + _globals['_DATATRACKPUBLISHED']._serialized_start=15461 + _globals['_DATATRACKPUBLISHED']._serialized_end=15533 + _globals['_DATATRACKUNPUBLISHED']._serialized_start=15535 + _globals['_DATATRACKUNPUBLISHED']._serialized_end=15570 # @@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 68f861d3b..6983864b0 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -235,6 +235,107 @@ KIND_LOSSY: DataPacketKind.ValueType # 0 KIND_RELIABLE: DataPacketKind.ValueType # 1 global___DataPacketKind = DataPacketKind +@typing.final +class PrewarmRequest(google.protobuf.message.Message): + """Open a connection (TCP, plus TLS for wss) to a server ahead of a ConnectRequest. + Pass the returned handle as RoomOptions.prewarmed_connection_handle so the + connect only performs the WebSocket upgrade. The connection is used at most + once; dropping the handle closes it. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + URL_FIELD_NUMBER: builtins.int + REQUEST_ASYNC_ID_FIELD_NUMBER: builtins.int + url: builtins.str + request_async_id: builtins.int + def __init__( + self, + *, + url: builtins.str | None = ..., + request_async_id: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["request_async_id", b"request_async_id", "url", b"url"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["request_async_id", b"request_async_id", "url", b"url"]) -> None: ... + +global___PrewarmRequest = PrewarmRequest + +@typing.final +class PrewarmResponse(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___PrewarmResponse = PrewarmResponse + +@typing.final +class PrewarmCallback(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + CONNECTION_FIELD_NUMBER: builtins.int + async_id: builtins.int + error: builtins.str + @property + def connection(self) -> handle_pb2.FfiOwnedHandle: ... + def __init__( + self, + *, + async_id: builtins.int | None = ..., + error: builtins.str | None = ..., + connection: handle_pb2.FfiOwnedHandle | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["async_id", b"async_id", "connection", b"connection", "error", b"error", "message", b"message"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["async_id", b"async_id", "connection", b"connection", "error", b"error", "message", b"message"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.Literal["error", "connection"] | None: ... + +global___PrewarmCallback = PrewarmCallback + +@typing.final +class PrewarmedConnectionAliveRequest(google.protobuf.message.Message): + """Whether a pre-warmed connection can still be used: not used yet, and not + closed by the server. + """ + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + CONNECTION_HANDLE_FIELD_NUMBER: builtins.int + connection_handle: builtins.int + def __init__( + self, + *, + connection_handle: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["connection_handle", b"connection_handle"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["connection_handle", b"connection_handle"]) -> None: ... + +global___PrewarmedConnectionAliveRequest = PrewarmedConnectionAliveRequest + +@typing.final +class PrewarmedConnectionAliveResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ALIVE_FIELD_NUMBER: builtins.int + alive: builtins.bool + def __init__( + self, + *, + alive: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["alive", b"alive"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["alive", b"alive"]) -> None: ... + +global___PrewarmedConnectionAliveResponse = PrewarmedConnectionAliveResponse + @typing.final class ConnectRequest(google.protobuf.message.Message): """Connect to a new LiveKit room""" @@ -1399,13 +1500,10 @@ class RoomDataStreamOptions(google.protobuf.message.Message): receiving side. Unset falls back to the SDK default. """ use_legacy_client_implementation: builtins.bool - """Temporary migration aid for SDKs that still implement data streams in - their own client-side code on top of the FFI instead of using the FFI - data stream API. When true, this client does not advertise data streams - v2 support: ClientInfo.client_protocol is capped at 1 (DATA_STREAM_RPC), - so remote clients will not use v2-only behavior toward this client. - Defaults to false (v2 advertised). Will be removed once all FFI - consumers migrate. + """Deprecated: no client SDK uses this anymore, and it is ignored. It was a + temporary migration aid for SDKs that implemented data streams in their + own client-side code on top of the FFI; data streams v2 support is now + always advertised. Kept only so the field number is not reused. """ def __init__( self, @@ -1433,6 +1531,7 @@ class RoomOptions(google.protobuf.message.Message): CONNECT_TIMEOUT_MS_FIELD_NUMBER: builtins.int DATA_STREAM_FIELD_NUMBER: builtins.int OTHER_SDKS_FIELD_NUMBER: builtins.int + PREWARMED_CONNECTION_HANDLE_FIELD_NUMBER: builtins.int auto_subscribe: builtins.bool adaptive_stream: builtins.bool dynacast: builtins.bool @@ -1445,6 +1544,10 @@ class RoomOptions(google.protobuf.message.Message): """Comma separated list of additional LiveKit SDKs layered on top of this one, with versions, e.g. "components-js:1.2.3,track-processors-js:1.2.3". Forwarded to ClientInfo.other_sdks. """ + prewarmed_connection_handle: builtins.int + """Handle from a PrewarmCallback. The first signal connection attempt runs the + WebSocket upgrade over it, or dials a fresh connection if it is unusable. + """ @property def e2ee(self) -> e2ee_pb2.E2eeOptions: ... @property @@ -1471,9 +1574,10 @@ class RoomOptions(google.protobuf.message.Message): connect_timeout_ms: builtins.int | None = ..., data_stream: global___RoomDataStreamOptions | None = ..., other_sdks: builtins.str | None = ..., + prewarmed_connection_handle: builtins.int | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "auto_subscribe", b"auto_subscribe", "connect_timeout_ms", b"connect_timeout_ms", "data_stream", b"data_stream", "dynacast", b"dynacast", "e2ee", b"e2ee", "encryption", b"encryption", "join_retries", b"join_retries", "other_sdks", b"other_sdks", "rtc_config", b"rtc_config", "single_peer_connection", b"single_peer_connection"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "auto_subscribe", b"auto_subscribe", "connect_timeout_ms", b"connect_timeout_ms", "data_stream", b"data_stream", "dynacast", b"dynacast", "e2ee", b"e2ee", "encryption", b"encryption", "join_retries", b"join_retries", "other_sdks", b"other_sdks", "rtc_config", b"rtc_config", "single_peer_connection", b"single_peer_connection"]) -> None: ... + def HasField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "auto_subscribe", b"auto_subscribe", "connect_timeout_ms", b"connect_timeout_ms", "data_stream", b"data_stream", "dynacast", b"dynacast", "e2ee", b"e2ee", "encryption", b"encryption", "join_retries", b"join_retries", "other_sdks", b"other_sdks", "prewarmed_connection_handle", b"prewarmed_connection_handle", "rtc_config", b"rtc_config", "single_peer_connection", b"single_peer_connection"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["adaptive_stream", b"adaptive_stream", "auto_subscribe", b"auto_subscribe", "connect_timeout_ms", b"connect_timeout_ms", "data_stream", b"data_stream", "dynacast", b"dynacast", "e2ee", b"e2ee", "encryption", b"encryption", "join_retries", b"join_retries", "other_sdks", b"other_sdks", "prewarmed_connection_handle", b"prewarmed_connection_handle", "rtc_config", b"rtc_config", "single_peer_connection", b"single_peer_connection"]) -> None: ... global___RoomOptions = RoomOptions diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index ef8289b52..1fa6f9b52 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -115,6 +115,60 @@ class DataStreamOptions: When None, uses the FFI default.""" +class PrewarmedConnection: + """A connection to a LiveKit server opened ahead of :meth:`Room.connect`. + + Opening the TCP (and, for ``wss``, TLS) connection early lets the connect + perform only the WebSocket upgrade. Pass it as + :attr:`RoomOptions.prewarmed_connection`. It is used at most once; if it is no + longer usable or was opened for a different server, the connect dials a fresh + connection instead. + """ + + def __init__(self, ffi_handle: FfiHandle) -> None: + self._ffi_handle = ffi_handle + + @classmethod + async def create(cls, url: str) -> PrewarmedConnection: + """Opens a connection to the server at ``url``. + + ``http(s)`` URLs are treated as ``ws(s)``. + + Raises: + ConnectError: If the connection could not be opened, or a proxy is + configured through ``HTTP(S)_PROXY``. + """ + req = proto_ffi.FfiRequest() + req.prewarm.url = url + + queue = FfiClient.instance.queue.subscribe() + try: + resp = FfiClient.instance.request(req) + cb: proto_ffi.FfiEvent = await queue.wait_for( + lambda e: e.prewarm.async_id == resp.prewarm.async_id + ) + finally: + FfiClient.instance.queue.unsubscribe(queue) + + if cb.prewarm.WhichOneof("message") != "connection": + raise ConnectError(cb.prewarm.error) + return cls(FfiHandle(cb.prewarm.connection.id)) + + @property + def alive(self) -> bool: + """Whether the connection is unused, open, and not closed by the server.""" + if self._ffi_handle.disposed: + return False + req = proto_ffi.FfiRequest() + req.prewarmed_connection_alive.connection_handle = self._ffi_handle.handle + resp: proto_ffi.FfiResponse = FfiClient.instance.request(req) + return resp.prewarmed_connection_alive.alive + + def close(self) -> None: + """Closes the connection without using it.""" + self._ffi_handle.dispose() + + @dataclass class RoomOptions: auto_subscribe: bool = True @@ -132,6 +186,8 @@ class RoomOptions: """Use a single peer connection for both publish and subscribe. When None, uses the default (true).""" data_stream: DataStreamOptions | None = None """Options for incoming data streams. When None, uses the FFI defaults.""" + prewarmed_connection: PrewarmedConnection | None = None + """A connection opened ahead of time, used by the first signal connection attempt.""" @dataclass @@ -505,6 +561,13 @@ def on_participant_connected(participant): if options.connect_timeout is not None: req.connect.options.connect_timeout_ms = int(options.connect_timeout * 1000) + if ( + options.prewarmed_connection is not None + and not options.prewarmed_connection._ffi_handle.disposed + ): + req.connect.options.prewarmed_connection_handle = ( + options.prewarmed_connection._ffi_handle.handle + ) if options.single_peer_connection is not None: req.connect.options.single_peer_connection = options.single_peer_connection