livekit 0.13.1.dev0__tar.gz → 0.15.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. {livekit-0.13.1.dev0 → livekit-0.15.0}/PKG-INFO +1 -1
  2. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/__init__.py +5 -2
  3. livekit-0.15.0/livekit/rtc/_proto/audio_frame_pb2.py +76 -0
  4. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/audio_frame_pb2.pyi +7 -1
  5. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/e2ee_pb2.py +1 -0
  6. livekit-0.15.0/livekit/rtc/_proto/ffi_pb2.py +50 -0
  7. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/ffi_pb2.pyi +22 -6
  8. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/handle_pb2.py +1 -0
  9. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/participant_pb2.py +1 -0
  10. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/room_pb2.py +1 -0
  11. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/stats_pb2.py +1 -0
  12. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/track_pb2.py +16 -7
  13. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/track_pb2.pyi +70 -0
  14. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/video_frame_pb2.py +1 -0
  15. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/audio_stream.py +4 -0
  16. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/room.py +1 -0
  17. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/track_publication.py +5 -0
  18. livekit-0.15.0/livekit/rtc/version.py +1 -0
  19. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit.egg-info/PKG-INFO +1 -1
  20. livekit-0.13.1.dev0/livekit/rtc/_proto/audio_frame_pb2.py +0 -75
  21. livekit-0.13.1.dev0/livekit/rtc/_proto/ffi_pb2.py +0 -49
  22. livekit-0.13.1.dev0/livekit/rtc/version.py +0 -1
  23. {livekit-0.13.1.dev0 → livekit-0.15.0}/README.md +0 -0
  24. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_event_emitter.py +0 -0
  25. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_ffi_client.py +0 -0
  26. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/__init__.py +0 -0
  27. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/e2ee_pb2.pyi +0 -0
  28. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/handle_pb2.pyi +0 -0
  29. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/participant_pb2.pyi +0 -0
  30. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/room_pb2.pyi +0 -0
  31. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/stats_pb2.pyi +0 -0
  32. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_proto/video_frame_pb2.pyi +0 -0
  33. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/_utils.py +0 -0
  34. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/audio_frame.py +0 -0
  35. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/audio_source.py +0 -0
  36. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/chat.py +0 -0
  37. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/e2ee.py +0 -0
  38. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/participant.py +0 -0
  39. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/py.typed +0 -0
  40. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/resources/__init__.py +0 -0
  41. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/track.py +0 -0
  42. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/transcription.py +0 -0
  43. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/video_frame.py +0 -0
  44. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/video_source.py +0 -0
  45. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit/rtc/video_stream.py +0 -0
  46. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit.egg-info/SOURCES.txt +0 -0
  47. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit.egg-info/dependency_links.txt +0 -0
  48. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit.egg-info/requires.txt +0 -0
  49. {livekit-0.13.1.dev0 → livekit-0.15.0}/livekit.egg-info/top_level.txt +0 -0
  50. {livekit-0.13.1.dev0 → livekit-0.15.0}/pyproject.toml +0 -0
  51. {livekit-0.13.1.dev0 → livekit-0.15.0}/setup.cfg +0 -0
  52. {livekit-0.13.1.dev0 → livekit-0.15.0}/setup.py +0 -0
  53. {livekit-0.13.1.dev0 → livekit-0.15.0}/tests/test_chat.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: livekit
3
- Version: 0.13.1.dev0
3
+ Version: 0.15.0
4
4
  Summary: Python Real-time SDK for LiveKit
5
5
  Home-page: https://github.com/livekit/python-sdks
6
6
  License: Apache-2.0
@@ -25,8 +25,9 @@ from ._proto.room_pb2 import (
25
25
  IceTransportType,
26
26
  TrackPublishOptions,
27
27
  )
28
+ from ._proto.room_pb2 import VideoEncoding
28
29
  from ._proto.track_pb2 import StreamState, TrackKind, TrackSource
29
- from ._proto.video_frame_pb2 import VideoBufferType, VideoRotation
30
+ from ._proto.video_frame_pb2 import VideoBufferType, VideoCodec, VideoRotation
30
31
  from .audio_frame import AudioFrame
31
32
  from .audio_source import AudioSource
32
33
  from .audio_stream import AudioFrameEvent, AudioStream
@@ -116,10 +117,12 @@ __all__ = [
116
117
  "TrackPublication",
117
118
  "Transcription",
118
119
  "TranscriptionSegment",
120
+ "VideoCodec",
121
+ "VideoEncoding",
119
122
  "VideoFrame",
123
+ "VideoFrameEvent",
120
124
  "VideoSource",
121
125
  "VideoStream",
122
- "VideoFrameEvent",
123
126
  "ChatManager",
124
127
  "ChatMessage",
125
128
  "__version__",
@@ -0,0 +1,76 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: audio_frame.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from . import handle_pb2 as handle__pb2
16
+
17
+
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\"\x86\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x01(\x04\x12,\n\x04type\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xe1\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x37\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptionsH\x00\x88\x01\x01\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x19\n\x0c\x65nable_queue\x18\x05 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_optionsB\x0f\n\r_enable_queue\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x01(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"K\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x01(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x13\n\x0bsample_rate\x18\x04 \x01(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x01(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x01(\r\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x01(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x01(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x01(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x01(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x01(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioResamplerInfo*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3')
19
+
20
+ _globals = globals()
21
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
22
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'audio_frame_pb2', _globals)
23
+ if _descriptor._USE_C_DESCRIPTORS == False:
24
+ _globals['DESCRIPTOR']._options = None
25
+ _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto'
26
+ _globals['_AUDIOSTREAMTYPE']._serialized_start=2229
27
+ _globals['_AUDIOSTREAMTYPE']._serialized_end=2294
28
+ _globals['_AUDIOSOURCETYPE']._serialized_start=2296
29
+ _globals['_AUDIOSOURCETYPE']._serialized_end=2338
30
+ _globals['_NEWAUDIOSTREAMREQUEST']._serialized_start=51
31
+ _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=185
32
+ _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=187
33
+ _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_end=260
34
+ _globals['_NEWAUDIOSOURCEREQUEST']._serialized_start=263
35
+ _globals['_NEWAUDIOSOURCEREQUEST']._serialized_end=488
36
+ _globals['_NEWAUDIOSOURCERESPONSE']._serialized_start=490
37
+ _globals['_NEWAUDIOSOURCERESPONSE']._serialized_end=563
38
+ _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_start=565
39
+ _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_end=667
40
+ _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_start=669
41
+ _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_end=714
42
+ _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_start=716
43
+ _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_end=791
44
+ _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_start=793
45
+ _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_end=819
46
+ _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_start=821
47
+ _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_end=903
48
+ _globals['_REMIXANDRESAMPLEREQUEST']._serialized_start=906
49
+ _globals['_REMIXANDRESAMPLEREQUEST']._serialized_end=1053
50
+ _globals['_REMIXANDRESAMPLERESPONSE']._serialized_start=1055
51
+ _globals['_REMIXANDRESAMPLERESPONSE']._serialized_end=1135
52
+ _globals['_AUDIOFRAMEBUFFERINFO']._serialized_start=1137
53
+ _globals['_AUDIOFRAMEBUFFERINFO']._serialized_end=1249
54
+ _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_start=1251
55
+ _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_end=1372
56
+ _globals['_AUDIOSTREAMINFO']._serialized_start=1374
57
+ _globals['_AUDIOSTREAMINFO']._serialized_end=1437
58
+ _globals['_OWNEDAUDIOSTREAM']._serialized_start=1439
59
+ _globals['_OWNEDAUDIOSTREAM']._serialized_end=1550
60
+ _globals['_AUDIOSTREAMEVENT']._serialized_start=1553
61
+ _globals['_AUDIOSTREAMEVENT']._serialized_end=1712
62
+ _globals['_AUDIOFRAMERECEIVED']._serialized_start=1714
63
+ _globals['_AUDIOFRAMERECEIVED']._serialized_end=1787
64
+ _globals['_AUDIOSTREAMEOS']._serialized_start=1789
65
+ _globals['_AUDIOSTREAMEOS']._serialized_end=1805
66
+ _globals['_AUDIOSOURCEOPTIONS']._serialized_start=1807
67
+ _globals['_AUDIOSOURCEOPTIONS']._serialized_end=1908
68
+ _globals['_AUDIOSOURCEINFO']._serialized_start=1910
69
+ _globals['_AUDIOSOURCEINFO']._serialized_end=1973
70
+ _globals['_OWNEDAUDIOSOURCE']._serialized_start=1975
71
+ _globals['_OWNEDAUDIOSOURCE']._serialized_end=2086
72
+ _globals['_AUDIORESAMPLERINFO']._serialized_start=2088
73
+ _globals['_AUDIORESAMPLERINFO']._serialized_end=2108
74
+ _globals['_OWNEDAUDIORESAMPLER']._serialized_start=2110
75
+ _globals['_OWNEDAUDIORESAMPLER']._serialized_end=2227
76
+ # @@protoc_insertion_point(module_scope)
@@ -72,15 +72,21 @@ class NewAudioStreamRequest(google.protobuf.message.Message):
72
72
 
73
73
  TRACK_HANDLE_FIELD_NUMBER: builtins.int
74
74
  TYPE_FIELD_NUMBER: builtins.int
75
+ SAMPLE_RATE_FIELD_NUMBER: builtins.int
76
+ NUM_CHANNELS_FIELD_NUMBER: builtins.int
75
77
  track_handle: builtins.int
76
78
  type: global___AudioStreamType.ValueType
79
+ sample_rate: builtins.int
80
+ num_channels: builtins.int
77
81
  def __init__(
78
82
  self,
79
83
  *,
80
84
  track_handle: builtins.int = ...,
81
85
  type: global___AudioStreamType.ValueType = ...,
86
+ sample_rate: builtins.int = ...,
87
+ num_channels: builtins.int = ...,
82
88
  ) -> None: ...
83
- def ClearField(self, field_name: typing.Literal["track_handle", b"track_handle", "type", b"type"]) -> None: ...
89
+ def ClearField(self, field_name: typing.Literal["num_channels", b"num_channels", "sample_rate", b"sample_rate", "track_handle", b"track_handle", "type", b"type"]) -> None: ...
84
90
 
85
91
  global___NewAudioStreamRequest = NewAudioStreamRequest
86
92
 
@@ -1,6 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: e2ee.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
6
  from google.protobuf import descriptor as _descriptor
6
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -0,0 +1,50 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: ffi.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from . import e2ee_pb2 as e2ee__pb2
16
+ from . import track_pb2 as track__pb2
17
+ from . import room_pb2 as room__pb2
18
+ from . import video_frame_pb2 as video__frame__pb2
19
+ from . import audio_frame_pb2 as audio__frame__pb2
20
+
21
+
22
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\"\xa6\x0e\n\nFfiRequest\x12\x30\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1d.livekit.proto.DisposeRequestH\x00\x12\x30\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.ConnectRequestH\x00\x12\x36\n\ndisconnect\x18\x04 \x01(\x0b\x32 .livekit.proto.DisconnectRequestH\x00\x12;\n\rpublish_track\x18\x05 \x01(\x0b\x32\".livekit.proto.PublishTrackRequestH\x00\x12?\n\x0funpublish_track\x18\x06 \x01(\x0b\x32$.livekit.proto.UnpublishTrackRequestH\x00\x12\x39\n\x0cpublish_data\x18\x07 \x01(\x0b\x32!.livekit.proto.PublishDataRequestH\x00\x12=\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32#.livekit.proto.SetSubscribedRequestH\x00\x12\x44\n\x12set_local_metadata\x18\t \x01(\x0b\x32&.livekit.proto.SetLocalMetadataRequestH\x00\x12<\n\x0eset_local_name\x18\n \x01(\x0b\x32\".livekit.proto.SetLocalNameRequestH\x00\x12H\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32(.livekit.proto.SetLocalAttributesRequestH\x00\x12\x42\n\x11get_session_stats\x18\x0c \x01(\x0b\x32%.livekit.proto.GetSessionStatsRequestH\x00\x12K\n\x15publish_transcription\x18\r \x01(\x0b\x32*.livekit.proto.PublishTranscriptionRequestH\x00\x12@\n\x10publish_sip_dtmf\x18\x0e \x01(\x0b\x32$.livekit.proto.PublishSipDtmfRequestH\x00\x12\x44\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32&.livekit.proto.CreateVideoTrackRequestH\x00\x12\x44\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32&.livekit.proto.CreateAudioTrackRequestH\x00\x12@\n\x10local_track_mute\x18\x11 \x01(\x0b\x32$.livekit.proto.LocalTrackMuteRequestH\x00\x12\x46\n\x13\x65nable_remote_track\x18\x12 \x01(\x0b\x32\'.livekit.proto.EnableRemoteTrackRequestH\x00\x12\x33\n\tget_stats\x18\x13 \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x14 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x15 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x16 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x17 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12@\n\x10new_audio_stream\x18\x18 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x19 \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x1a \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x1b \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1c \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1d \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x42\t\n\x07message\"\xc3\x0e\n\x0b\x46\x66iResponse\x12\x31\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.DisposeResponseH\x00\x12\x31\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1e.livekit.proto.ConnectResponseH\x00\x12\x37\n\ndisconnect\x18\x04 \x01(\x0b\x32!.livekit.proto.DisconnectResponseH\x00\x12<\n\rpublish_track\x18\x05 \x01(\x0b\x32#.livekit.proto.PublishTrackResponseH\x00\x12@\n\x0funpublish_track\x18\x06 \x01(\x0b\x32%.livekit.proto.UnpublishTrackResponseH\x00\x12:\n\x0cpublish_data\x18\x07 \x01(\x0b\x32\".livekit.proto.PublishDataResponseH\x00\x12>\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32$.livekit.proto.SetSubscribedResponseH\x00\x12\x45\n\x12set_local_metadata\x18\t \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataResponseH\x00\x12=\n\x0eset_local_name\x18\n \x01(\x0b\x32#.livekit.proto.SetLocalNameResponseH\x00\x12I\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32).livekit.proto.SetLocalAttributesResponseH\x00\x12\x43\n\x11get_session_stats\x18\x0c \x01(\x0b\x32&.livekit.proto.GetSessionStatsResponseH\x00\x12L\n\x15publish_transcription\x18\r \x01(\x0b\x32+.livekit.proto.PublishTranscriptionResponseH\x00\x12\x41\n\x10publish_sip_dtmf\x18\x0e \x01(\x0b\x32%.livekit.proto.PublishSipDtmfResponseH\x00\x12\x45\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32\'.livekit.proto.CreateVideoTrackResponseH\x00\x12\x45\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32\'.livekit.proto.CreateAudioTrackResponseH\x00\x12\x41\n\x10local_track_mute\x18\x11 \x01(\x0b\x32%.livekit.proto.LocalTrackMuteResponseH\x00\x12G\n\x13\x65nable_remote_track\x18\x12 \x01(\x0b\x32(.livekit.proto.EnableRemoteTrackResponseH\x00\x12\x34\n\tget_stats\x18\x13 \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x14 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x15 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x16 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x17 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x18 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x19 \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x1a \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12G\n\x13new_audio_resampler\x18\x1b \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1c \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18\x1d \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x42\t\n\x07message\"\xc6\t\n\x08\x46\x66iEvent\x12.\n\nroom_event\x18\x01 \x01(\x0b\x32\x18.livekit.proto.RoomEventH\x00\x12\x30\n\x0btrack_event\x18\x02 \x01(\x0b\x32\x19.livekit.proto.TrackEventH\x00\x12=\n\x12video_stream_event\x18\x03 \x01(\x0b\x32\x1f.livekit.proto.VideoStreamEventH\x00\x12=\n\x12\x61udio_stream_event\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.AudioStreamEventH\x00\x12\x31\n\x07\x63onnect\x18\x05 \x01(\x0b\x32\x1e.livekit.proto.ConnectCallbackH\x00\x12\x37\n\ndisconnect\x18\x07 \x01(\x0b\x32!.livekit.proto.DisconnectCallbackH\x00\x12\x31\n\x07\x64ispose\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.DisposeCallbackH\x00\x12<\n\rpublish_track\x18\t \x01(\x0b\x32#.livekit.proto.PublishTrackCallbackH\x00\x12@\n\x0funpublish_track\x18\n \x01(\x0b\x32%.livekit.proto.UnpublishTrackCallbackH\x00\x12:\n\x0cpublish_data\x18\x0b \x01(\x0b\x32\".livekit.proto.PublishDataCallbackH\x00\x12L\n\x15publish_transcription\x18\x0c \x01(\x0b\x32+.livekit.proto.PublishTranscriptionCallbackH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\r \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameCallbackH\x00\x12\x45\n\x12set_local_metadata\x18\x0e \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataCallbackH\x00\x12=\n\x0eset_local_name\x18\x0f \x01(\x0b\x32#.livekit.proto.SetLocalNameCallbackH\x00\x12I\n\x14set_local_attributes\x18\x10 \x01(\x0b\x32).livekit.proto.SetLocalAttributesCallbackH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsCallbackH\x00\x12\'\n\x04logs\x18\x12 \x01(\x0b\x32\x17.livekit.proto.LogBatchH\x00\x12\x43\n\x11get_session_stats\x18\x13 \x01(\x0b\x32&.livekit.proto.GetSessionStatsCallbackH\x00\x12%\n\x05panic\x18\x14 \x01(\x0b\x32\x14.livekit.proto.PanicH\x00\x12\x41\n\x10publish_sip_dtmf\x18\x15 \x01(\x0b\x32%.livekit.proto.PublishSipDtmfCallbackH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"5\n\x0f\x44isposeResponse\x12\x15\n\x08\x61sync_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x0b\n\t_async_id\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xb6\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x01(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x01(\t\x12\x18\n\x0bmodule_path\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x66ile\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04line\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07message\x18\x06 \x01(\tB\x0e\n\x0c_module_pathB\x07\n\x05_fileB\x07\n\x05_line\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x01(\t*S\n\x08LogLevel\x12\r\n\tLOG_ERROR\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x01\x12\x0c\n\x08LOG_INFO\x10\x02\x12\r\n\tLOG_DEBUG\x10\x03\x12\r\n\tLOG_TRACE\x10\x04\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3')
23
+
24
+ _globals = globals()
25
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
26
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ffi_pb2', _globals)
27
+ if _descriptor._USE_C_DESCRIPTORS == False:
28
+ _globals['DESCRIPTOR']._options = None
29
+ _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto'
30
+ _globals['_LOGLEVEL']._serialized_start=5414
31
+ _globals['_LOGLEVEL']._serialized_end=5497
32
+ _globals['_FFIREQUEST']._serialized_start=104
33
+ _globals['_FFIREQUEST']._serialized_end=1934
34
+ _globals['_FFIRESPONSE']._serialized_start=1937
35
+ _globals['_FFIRESPONSE']._serialized_end=3796
36
+ _globals['_FFIEVENT']._serialized_start=3799
37
+ _globals['_FFIEVENT']._serialized_end=5021
38
+ _globals['_DISPOSEREQUEST']._serialized_start=5023
39
+ _globals['_DISPOSEREQUEST']._serialized_end=5054
40
+ _globals['_DISPOSERESPONSE']._serialized_start=5056
41
+ _globals['_DISPOSERESPONSE']._serialized_end=5109
42
+ _globals['_DISPOSECALLBACK']._serialized_start=5111
43
+ _globals['_DISPOSECALLBACK']._serialized_end=5146
44
+ _globals['_LOGRECORD']._serialized_start=5149
45
+ _globals['_LOGRECORD']._serialized_end=5331
46
+ _globals['_LOGBATCH']._serialized_start=5333
47
+ _globals['_LOGBATCH']._serialized_end=5386
48
+ _globals['_PANIC']._serialized_start=5388
49
+ _globals['_PANIC']._serialized_end=5412
50
+ # @@protoc_insertion_point(module_scope)
@@ -107,6 +107,8 @@ class FfiRequest(google.protobuf.message.Message):
107
107
  PUBLISH_SIP_DTMF_FIELD_NUMBER: builtins.int
108
108
  CREATE_VIDEO_TRACK_FIELD_NUMBER: builtins.int
109
109
  CREATE_AUDIO_TRACK_FIELD_NUMBER: builtins.int
110
+ LOCAL_TRACK_MUTE_FIELD_NUMBER: builtins.int
111
+ ENABLE_REMOTE_TRACK_FIELD_NUMBER: builtins.int
110
112
  GET_STATS_FIELD_NUMBER: builtins.int
111
113
  NEW_VIDEO_STREAM_FIELD_NUMBER: builtins.int
112
114
  NEW_VIDEO_SOURCE_FIELD_NUMBER: builtins.int
@@ -153,6 +155,10 @@ class FfiRequest(google.protobuf.message.Message):
153
155
  @property
154
156
  def create_audio_track(self) -> track_pb2.CreateAudioTrackRequest: ...
155
157
  @property
158
+ def local_track_mute(self) -> track_pb2.LocalTrackMuteRequest: ...
159
+ @property
160
+ def enable_remote_track(self) -> track_pb2.EnableRemoteTrackRequest: ...
161
+ @property
156
162
  def get_stats(self) -> track_pb2.GetStatsRequest: ...
157
163
  @property
158
164
  def new_video_stream(self) -> video_frame_pb2.NewVideoStreamRequest:
@@ -196,6 +202,8 @@ class FfiRequest(google.protobuf.message.Message):
196
202
  publish_sip_dtmf: room_pb2.PublishSipDtmfRequest | None = ...,
197
203
  create_video_track: track_pb2.CreateVideoTrackRequest | None = ...,
198
204
  create_audio_track: track_pb2.CreateAudioTrackRequest | None = ...,
205
+ local_track_mute: track_pb2.LocalTrackMuteRequest | None = ...,
206
+ enable_remote_track: track_pb2.EnableRemoteTrackRequest | None = ...,
199
207
  get_stats: track_pb2.GetStatsRequest | None = ...,
200
208
  new_video_stream: video_frame_pb2.NewVideoStreamRequest | None = ...,
201
209
  new_video_source: video_frame_pb2.NewVideoSourceRequest | None = ...,
@@ -208,9 +216,9 @@ class FfiRequest(google.protobuf.message.Message):
208
216
  remix_and_resample: audio_frame_pb2.RemixAndResampleRequest | None = ...,
209
217
  e2ee: e2ee_pb2.E2eeRequest | None = ...,
210
218
  ) -> None: ...
211
- def HasField(self, field_name: typing.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ...
212
- def ClearField(self, field_name: typing.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ...
213
- 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", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ...
219
+ def HasField(self, field_name: typing.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "enable_remote_track", b"enable_remote_track", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ...
220
+ def ClearField(self, field_name: typing.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "enable_remote_track", b"enable_remote_track", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ...
221
+ def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "set_local_metadata", "set_local_name", "set_local_attributes", "get_session_stats", "publish_transcription", "publish_sip_dtmf", "create_video_track", "create_audio_track", "local_track_mute", "enable_remote_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ...
214
222
 
215
223
  global___FfiRequest = FfiRequest
216
224
 
@@ -235,6 +243,8 @@ class FfiResponse(google.protobuf.message.Message):
235
243
  PUBLISH_SIP_DTMF_FIELD_NUMBER: builtins.int
236
244
  CREATE_VIDEO_TRACK_FIELD_NUMBER: builtins.int
237
245
  CREATE_AUDIO_TRACK_FIELD_NUMBER: builtins.int
246
+ LOCAL_TRACK_MUTE_FIELD_NUMBER: builtins.int
247
+ ENABLE_REMOTE_TRACK_FIELD_NUMBER: builtins.int
238
248
  GET_STATS_FIELD_NUMBER: builtins.int
239
249
  NEW_VIDEO_STREAM_FIELD_NUMBER: builtins.int
240
250
  NEW_VIDEO_SOURCE_FIELD_NUMBER: builtins.int
@@ -281,6 +291,10 @@ class FfiResponse(google.protobuf.message.Message):
281
291
  @property
282
292
  def create_audio_track(self) -> track_pb2.CreateAudioTrackResponse: ...
283
293
  @property
294
+ def local_track_mute(self) -> track_pb2.LocalTrackMuteResponse: ...
295
+ @property
296
+ def enable_remote_track(self) -> track_pb2.EnableRemoteTrackResponse: ...
297
+ @property
284
298
  def get_stats(self) -> track_pb2.GetStatsResponse: ...
285
299
  @property
286
300
  def new_video_stream(self) -> video_frame_pb2.NewVideoStreamResponse:
@@ -324,6 +338,8 @@ class FfiResponse(google.protobuf.message.Message):
324
338
  publish_sip_dtmf: room_pb2.PublishSipDtmfResponse | None = ...,
325
339
  create_video_track: track_pb2.CreateVideoTrackResponse | None = ...,
326
340
  create_audio_track: track_pb2.CreateAudioTrackResponse | None = ...,
341
+ local_track_mute: track_pb2.LocalTrackMuteResponse | None = ...,
342
+ enable_remote_track: track_pb2.EnableRemoteTrackResponse | None = ...,
327
343
  get_stats: track_pb2.GetStatsResponse | None = ...,
328
344
  new_video_stream: video_frame_pb2.NewVideoStreamResponse | None = ...,
329
345
  new_video_source: video_frame_pb2.NewVideoSourceResponse | None = ...,
@@ -336,9 +352,9 @@ class FfiResponse(google.protobuf.message.Message):
336
352
  remix_and_resample: audio_frame_pb2.RemixAndResampleResponse | None = ...,
337
353
  e2ee: e2ee_pb2.E2eeResponse | None = ...,
338
354
  ) -> None: ...
339
- def HasField(self, field_name: typing.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ...
340
- def ClearField(self, field_name: typing.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ...
341
- 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", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ...
355
+ def HasField(self, field_name: typing.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "enable_remote_track", b"enable_remote_track", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ...
356
+ def ClearField(self, field_name: typing.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "enable_remote_track", b"enable_remote_track", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ...
357
+ def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "set_local_metadata", "set_local_name", "set_local_attributes", "get_session_stats", "publish_transcription", "publish_sip_dtmf", "create_video_track", "create_audio_track", "local_track_mute", "enable_remote_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ...
342
358
 
343
359
  global___FfiResponse = FfiResponse
344
360
 
@@ -1,6 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: handle.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
6
  from google.protobuf import descriptor as _descriptor
6
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,6 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: participant.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
6
  from google.protobuf import descriptor as _descriptor
6
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,6 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: room.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
6
  from google.protobuf import descriptor as _descriptor
6
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,6 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: stats.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
6
  from google.protobuf import descriptor as _descriptor
6
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -1,6 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: track.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
6
  from google.protobuf import descriptor as _descriptor
6
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -16,7 +17,7 @@ from . import handle_pb2 as handle__pb2
16
17
  from . import stats_pb2 as stats__pb2
17
18
 
18
19
 
19
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0btrack.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x0bstats.proto\">\n\x17\x43reateVideoTrackRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rsource_handle\x18\x02 \x01(\x04\"D\n\x18\x43reateVideoTrackResponse\x12(\n\x05track\x18\x01 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\">\n\x17\x43reateAudioTrackRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rsource_handle\x18\x02 \x01(\x04\"D\n\x18\x43reateAudioTrackResponse\x12(\n\x05track\x18\x01 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"\'\n\x0fGetStatsRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x01(\x04\"$\n\x10GetStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"j\n\x10GetStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x05stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\"\x0c\n\nTrackEvent\"\xa3\x02\n\x14TrackPublicationInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12&\n\x04kind\x18\x03 \x01(\x0e\x32\x18.livekit.proto.TrackKind\x12*\n\x06source\x18\x04 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsimulcasted\x18\x05 \x01(\x08\x12\r\n\x05width\x18\x06 \x01(\r\x12\x0e\n\x06height\x18\x07 \x01(\r\x12\x11\n\tmime_type\x18\x08 \x01(\t\x12\r\n\x05muted\x18\t \x01(\x08\x12\x0e\n\x06remote\x18\n \x01(\x08\x12\x36\n\x0f\x65ncryption_type\x18\x0b \x01(\x0e\x32\x1d.livekit.proto.EncryptionType\"y\n\x15OwnedTrackPublication\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x01(\x0b\x32#.livekit.proto.TrackPublicationInfo\"\x9f\x01\n\tTrackInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12&\n\x04kind\x18\x03 \x01(\x0e\x32\x18.livekit.proto.TrackKind\x12\x30\n\x0cstream_state\x18\x04 \x01(\x0e\x32\x1a.livekit.proto.StreamState\x12\r\n\x05muted\x18\x05 \x01(\x08\x12\x0e\n\x06remote\x18\x06 \x01(\x08\"c\n\nOwnedTrack\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12&\n\x04info\x18\x02 \x01(\x0b\x32\x18.livekit.proto.TrackInfo*=\n\tTrackKind\x12\x10\n\x0cKIND_UNKNOWN\x10\x00\x12\x0e\n\nKIND_AUDIO\x10\x01\x12\x0e\n\nKIND_VIDEO\x10\x02*\x81\x01\n\x0bTrackSource\x12\x12\n\x0eSOURCE_UNKNOWN\x10\x00\x12\x11\n\rSOURCE_CAMERA\x10\x01\x12\x15\n\x11SOURCE_MICROPHONE\x10\x02\x12\x16\n\x12SOURCE_SCREENSHARE\x10\x03\x12\x1c\n\x18SOURCE_SCREENSHARE_AUDIO\x10\x04*D\n\x0bStreamState\x12\x11\n\rSTATE_UNKNOWN\x10\x00\x12\x10\n\x0cSTATE_ACTIVE\x10\x01\x12\x10\n\x0cSTATE_PAUSED\x10\x02\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3')
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0btrack.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x0bstats.proto\">\n\x17\x43reateVideoTrackRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rsource_handle\x18\x02 \x01(\x04\"D\n\x18\x43reateVideoTrackResponse\x12(\n\x05track\x18\x01 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\">\n\x17\x43reateAudioTrackRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rsource_handle\x18\x02 \x01(\x04\"D\n\x18\x43reateAudioTrackResponse\x12(\n\x05track\x18\x01 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"\'\n\x0fGetStatsRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x01(\x04\"$\n\x10GetStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"j\n\x10GetStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x05stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\"\x0c\n\nTrackEvent\"\xa3\x02\n\x14TrackPublicationInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12&\n\x04kind\x18\x03 \x01(\x0e\x32\x18.livekit.proto.TrackKind\x12*\n\x06source\x18\x04 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsimulcasted\x18\x05 \x01(\x08\x12\r\n\x05width\x18\x06 \x01(\r\x12\x0e\n\x06height\x18\x07 \x01(\r\x12\x11\n\tmime_type\x18\x08 \x01(\t\x12\r\n\x05muted\x18\t \x01(\x08\x12\x0e\n\x06remote\x18\n \x01(\x08\x12\x36\n\x0f\x65ncryption_type\x18\x0b \x01(\x0e\x32\x1d.livekit.proto.EncryptionType\"y\n\x15OwnedTrackPublication\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x01(\x0b\x32#.livekit.proto.TrackPublicationInfo\"\x9f\x01\n\tTrackInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12&\n\x04kind\x18\x03 \x01(\x0e\x32\x18.livekit.proto.TrackKind\x12\x30\n\x0cstream_state\x18\x04 \x01(\x0e\x32\x1a.livekit.proto.StreamState\x12\r\n\x05muted\x18\x05 \x01(\x08\x12\x0e\n\x06remote\x18\x06 \x01(\x08\"c\n\nOwnedTrack\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12&\n\x04info\x18\x02 \x01(\x0b\x32\x18.livekit.proto.TrackInfo\";\n\x15LocalTrackMuteRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x01(\x04\x12\x0c\n\x04mute\x18\x02 \x01(\x08\"\'\n\x16LocalTrackMuteResponse\x12\r\n\x05muted\x18\x01 \x01(\x08\"A\n\x18\x45nableRemoteTrackRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x01(\x04\x12\x0f\n\x07\x65nabled\x18\x02 \x01(\x08\",\n\x19\x45nableRemoteTrackResponse\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08*=\n\tTrackKind\x12\x10\n\x0cKIND_UNKNOWN\x10\x00\x12\x0e\n\nKIND_AUDIO\x10\x01\x12\x0e\n\nKIND_VIDEO\x10\x02*\x81\x01\n\x0bTrackSource\x12\x12\n\x0eSOURCE_UNKNOWN\x10\x00\x12\x11\n\rSOURCE_CAMERA\x10\x01\x12\x15\n\x11SOURCE_MICROPHONE\x10\x02\x12\x16\n\x12SOURCE_SCREENSHARE\x10\x03\x12\x1c\n\x18SOURCE_SCREENSHARE_AUDIO\x10\x04*D\n\x0bStreamState\x12\x11\n\rSTATE_UNKNOWN\x10\x00\x12\x10\n\x0cSTATE_ACTIVE\x10\x01\x12\x10\n\x0cSTATE_PAUSED\x10\x02\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3')
20
21
 
21
22
  _globals = globals()
22
23
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -24,12 +25,12 @@ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'track_pb2', _globals)
24
25
  if _descriptor._USE_C_DESCRIPTORS == False:
25
26
  _globals['DESCRIPTOR']._options = None
26
27
  _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto'
27
- _globals['_TRACKKIND']._serialized_start=1218
28
- _globals['_TRACKKIND']._serialized_end=1279
29
- _globals['_TRACKSOURCE']._serialized_start=1282
30
- _globals['_TRACKSOURCE']._serialized_end=1411
31
- _globals['_STREAMSTATE']._serialized_start=1413
32
- _globals['_STREAMSTATE']._serialized_end=1481
28
+ _globals['_TRACKKIND']._serialized_start=1433
29
+ _globals['_TRACKKIND']._serialized_end=1494
30
+ _globals['_TRACKSOURCE']._serialized_start=1497
31
+ _globals['_TRACKSOURCE']._serialized_end=1626
32
+ _globals['_STREAMSTATE']._serialized_start=1628
33
+ _globals['_STREAMSTATE']._serialized_end=1696
33
34
  _globals['_CREATEVIDEOTRACKREQUEST']._serialized_start=69
34
35
  _globals['_CREATEVIDEOTRACKREQUEST']._serialized_end=131
35
36
  _globals['_CREATEVIDEOTRACKRESPONSE']._serialized_start=133
@@ -54,4 +55,12 @@ if _descriptor._USE_C_DESCRIPTORS == False:
54
55
  _globals['_TRACKINFO']._serialized_end=1115
55
56
  _globals['_OWNEDTRACK']._serialized_start=1117
56
57
  _globals['_OWNEDTRACK']._serialized_end=1216
58
+ _globals['_LOCALTRACKMUTEREQUEST']._serialized_start=1218
59
+ _globals['_LOCALTRACKMUTEREQUEST']._serialized_end=1277
60
+ _globals['_LOCALTRACKMUTERESPONSE']._serialized_start=1279
61
+ _globals['_LOCALTRACKMUTERESPONSE']._serialized_end=1318
62
+ _globals['_ENABLEREMOTETRACKREQUEST']._serialized_start=1320
63
+ _globals['_ENABLEREMOTETRACKREQUEST']._serialized_end=1385
64
+ _globals['_ENABLEREMOTETRACKRESPONSE']._serialized_start=1387
65
+ _globals['_ENABLEREMOTETRACKRESPONSE']._serialized_end=1431
57
66
  # @@protoc_insertion_point(module_scope)
@@ -348,3 +348,73 @@ class OwnedTrack(google.protobuf.message.Message):
348
348
  def ClearField(self, field_name: typing.Literal["handle", b"handle", "info", b"info"]) -> None: ...
349
349
 
350
350
  global___OwnedTrack = OwnedTrack
351
+
352
+ @typing.final
353
+ class LocalTrackMuteRequest(google.protobuf.message.Message):
354
+ """Mute/UnMute a track"""
355
+
356
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
357
+
358
+ TRACK_HANDLE_FIELD_NUMBER: builtins.int
359
+ MUTE_FIELD_NUMBER: builtins.int
360
+ track_handle: builtins.int
361
+ mute: builtins.bool
362
+ def __init__(
363
+ self,
364
+ *,
365
+ track_handle: builtins.int = ...,
366
+ mute: builtins.bool = ...,
367
+ ) -> None: ...
368
+ def ClearField(self, field_name: typing.Literal["mute", b"mute", "track_handle", b"track_handle"]) -> None: ...
369
+
370
+ global___LocalTrackMuteRequest = LocalTrackMuteRequest
371
+
372
+ @typing.final
373
+ class LocalTrackMuteResponse(google.protobuf.message.Message):
374
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
375
+
376
+ MUTED_FIELD_NUMBER: builtins.int
377
+ muted: builtins.bool
378
+ def __init__(
379
+ self,
380
+ *,
381
+ muted: builtins.bool = ...,
382
+ ) -> None: ...
383
+ def ClearField(self, field_name: typing.Literal["muted", b"muted"]) -> None: ...
384
+
385
+ global___LocalTrackMuteResponse = LocalTrackMuteResponse
386
+
387
+ @typing.final
388
+ class EnableRemoteTrackRequest(google.protobuf.message.Message):
389
+ """Enable/Disable a remote track"""
390
+
391
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
392
+
393
+ TRACK_HANDLE_FIELD_NUMBER: builtins.int
394
+ ENABLED_FIELD_NUMBER: builtins.int
395
+ track_handle: builtins.int
396
+ enabled: builtins.bool
397
+ def __init__(
398
+ self,
399
+ *,
400
+ track_handle: builtins.int = ...,
401
+ enabled: builtins.bool = ...,
402
+ ) -> None: ...
403
+ def ClearField(self, field_name: typing.Literal["enabled", b"enabled", "track_handle", b"track_handle"]) -> None: ...
404
+
405
+ global___EnableRemoteTrackRequest = EnableRemoteTrackRequest
406
+
407
+ @typing.final
408
+ class EnableRemoteTrackResponse(google.protobuf.message.Message):
409
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
410
+
411
+ ENABLED_FIELD_NUMBER: builtins.int
412
+ enabled: builtins.bool
413
+ def __init__(
414
+ self,
415
+ *,
416
+ enabled: builtins.bool = ...,
417
+ ) -> None: ...
418
+ def ClearField(self, field_name: typing.Literal["enabled", b"enabled"]) -> None: ...
419
+
420
+ global___EnableRemoteTrackResponse = EnableRemoteTrackResponse
@@ -1,6 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
3
  # source: video_frame.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
6
  from google.protobuf import descriptor as _descriptor
6
7
  from google.protobuf import descriptor_pool as _descriptor_pool
@@ -37,6 +37,8 @@ class AudioStream:
37
37
  track: Track,
38
38
  loop: Optional[asyncio.AbstractEventLoop] = None,
39
39
  capacity: int = 0,
40
+ sample_rate: int = 48000,
41
+ num_channels: int = 1,
40
42
  ) -> None:
41
43
  self._track = track
42
44
  self._loop = loop or asyncio.get_event_loop()
@@ -47,6 +49,8 @@ class AudioStream:
47
49
  new_audio_stream = req.new_audio_stream
48
50
  new_audio_stream.track_handle = track._ffi_handle.handle
49
51
  new_audio_stream.type = proto_audio_frame.AudioStreamType.AUDIO_STREAM_NATIVE
52
+ new_audio_stream.sample_rate = sample_rate
53
+ new_audio_stream.num_channels = num_channels
50
54
  resp = FfiClient.instance.request(req)
51
55
 
52
56
  stream_info = resp.new_audio_stream.stream
@@ -288,6 +288,7 @@ class Room(EventEmitter[EventTypes]):
288
288
  elif which == "local_track_subscribed":
289
289
  sid = event.local_track_subscribed.track_sid
290
290
  lpublication = self.local_participant.track_publications[sid]
291
+ lpublication._first_subscription.set_result(None)
291
292
  self.emit("local_track_subscribed", lpublication.track)
292
293
  elif which == "track_published":
293
294
  rparticipant = self.remote_participants[
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from typing import Optional
16
+ import asyncio
16
17
 
17
18
  from ._ffi_client import FfiHandle, FfiClient
18
19
  from ._proto import e2ee_pb2 as proto_e2ee
@@ -71,6 +72,10 @@ class TrackPublication:
71
72
  class LocalTrackPublication(TrackPublication):
72
73
  def __init__(self, owned_info: proto_track.OwnedTrackPublication):
73
74
  super().__init__(owned_info)
75
+ self._first_subscription: asyncio.Future[None] = asyncio.Future()
76
+
77
+ async def wait_for_subscription(self) -> None:
78
+ await asyncio.shield(self._first_subscription)
74
79
 
75
80
 
76
81
  class RemoteTrackPublication(TrackPublication):
@@ -0,0 +1 @@
1
+ __version__ = "0.15.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: livekit
3
- Version: 0.13.1.dev0
3
+ Version: 0.15.0
4
4
  Summary: Python Real-time SDK for LiveKit
5
5
  Home-page: https://github.com/livekit/python-sdks
6
6
  License: Apache-2.0
@@ -1,75 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: audio_frame.proto
4
- """Generated protocol buffer code."""
5
- from google.protobuf import descriptor as _descriptor
6
- from google.protobuf import descriptor_pool as _descriptor_pool
7
- from google.protobuf import symbol_database as _symbol_database
8
- from google.protobuf.internal import builder as _builder
9
- # @@protoc_insertion_point(imports)
10
-
11
- _sym_db = _symbol_database.Default()
12
-
13
-
14
- from . import handle_pb2 as handle__pb2
15
-
16
-
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\"[\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x01(\x04\x12,\n\x04type\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.AudioStreamType\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xe1\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x37\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptionsH\x00\x88\x01\x01\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x19\n\x0c\x65nable_queue\x18\x05 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_optionsB\x0f\n\r_enable_queue\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x01(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"K\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x01(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x13\n\x0bsample_rate\x18\x04 \x01(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x01(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x01(\r\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x01(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x01(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x01(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x01(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x01(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioResamplerInfo*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3')
18
-
19
- _globals = globals()
20
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'audio_frame_pb2', _globals)
22
- if _descriptor._USE_C_DESCRIPTORS == False:
23
- _globals['DESCRIPTOR']._options = None
24
- _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto'
25
- _globals['_AUDIOSTREAMTYPE']._serialized_start=2185
26
- _globals['_AUDIOSTREAMTYPE']._serialized_end=2250
27
- _globals['_AUDIOSOURCETYPE']._serialized_start=2252
28
- _globals['_AUDIOSOURCETYPE']._serialized_end=2294
29
- _globals['_NEWAUDIOSTREAMREQUEST']._serialized_start=50
30
- _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=141
31
- _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=143
32
- _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_end=216
33
- _globals['_NEWAUDIOSOURCEREQUEST']._serialized_start=219
34
- _globals['_NEWAUDIOSOURCEREQUEST']._serialized_end=444
35
- _globals['_NEWAUDIOSOURCERESPONSE']._serialized_start=446
36
- _globals['_NEWAUDIOSOURCERESPONSE']._serialized_end=519
37
- _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_start=521
38
- _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_end=623
39
- _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_start=625
40
- _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_end=670
41
- _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_start=672
42
- _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_end=747
43
- _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_start=749
44
- _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_end=775
45
- _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_start=777
46
- _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_end=859
47
- _globals['_REMIXANDRESAMPLEREQUEST']._serialized_start=862
48
- _globals['_REMIXANDRESAMPLEREQUEST']._serialized_end=1009
49
- _globals['_REMIXANDRESAMPLERESPONSE']._serialized_start=1011
50
- _globals['_REMIXANDRESAMPLERESPONSE']._serialized_end=1091
51
- _globals['_AUDIOFRAMEBUFFERINFO']._serialized_start=1093
52
- _globals['_AUDIOFRAMEBUFFERINFO']._serialized_end=1205
53
- _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_start=1207
54
- _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_end=1328
55
- _globals['_AUDIOSTREAMINFO']._serialized_start=1330
56
- _globals['_AUDIOSTREAMINFO']._serialized_end=1393
57
- _globals['_OWNEDAUDIOSTREAM']._serialized_start=1395
58
- _globals['_OWNEDAUDIOSTREAM']._serialized_end=1506
59
- _globals['_AUDIOSTREAMEVENT']._serialized_start=1509
60
- _globals['_AUDIOSTREAMEVENT']._serialized_end=1668
61
- _globals['_AUDIOFRAMERECEIVED']._serialized_start=1670
62
- _globals['_AUDIOFRAMERECEIVED']._serialized_end=1743
63
- _globals['_AUDIOSTREAMEOS']._serialized_start=1745
64
- _globals['_AUDIOSTREAMEOS']._serialized_end=1761
65
- _globals['_AUDIOSOURCEOPTIONS']._serialized_start=1763
66
- _globals['_AUDIOSOURCEOPTIONS']._serialized_end=1864
67
- _globals['_AUDIOSOURCEINFO']._serialized_start=1866
68
- _globals['_AUDIOSOURCEINFO']._serialized_end=1929
69
- _globals['_OWNEDAUDIOSOURCE']._serialized_start=1931
70
- _globals['_OWNEDAUDIOSOURCE']._serialized_end=2042
71
- _globals['_AUDIORESAMPLERINFO']._serialized_start=2044
72
- _globals['_AUDIORESAMPLERINFO']._serialized_end=2064
73
- _globals['_OWNEDAUDIORESAMPLER']._serialized_start=2066
74
- _globals['_OWNEDAUDIORESAMPLER']._serialized_end=2183
75
- # @@protoc_insertion_point(module_scope)
@@ -1,49 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: ffi.proto
4
- """Generated protocol buffer code."""
5
- from google.protobuf import descriptor as _descriptor
6
- from google.protobuf import descriptor_pool as _descriptor_pool
7
- from google.protobuf import symbol_database as _symbol_database
8
- from google.protobuf.internal import builder as _builder
9
- # @@protoc_insertion_point(imports)
10
-
11
- _sym_db = _symbol_database.Default()
12
-
13
-
14
- from . import e2ee_pb2 as e2ee__pb2
15
- from . import track_pb2 as track__pb2
16
- from . import room_pb2 as room__pb2
17
- from . import video_frame_pb2 as video__frame__pb2
18
- from . import audio_frame_pb2 as audio__frame__pb2
19
-
20
-
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\"\x9c\r\n\nFfiRequest\x12\x30\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1d.livekit.proto.DisposeRequestH\x00\x12\x30\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.ConnectRequestH\x00\x12\x36\n\ndisconnect\x18\x04 \x01(\x0b\x32 .livekit.proto.DisconnectRequestH\x00\x12;\n\rpublish_track\x18\x05 \x01(\x0b\x32\".livekit.proto.PublishTrackRequestH\x00\x12?\n\x0funpublish_track\x18\x06 \x01(\x0b\x32$.livekit.proto.UnpublishTrackRequestH\x00\x12\x39\n\x0cpublish_data\x18\x07 \x01(\x0b\x32!.livekit.proto.PublishDataRequestH\x00\x12=\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32#.livekit.proto.SetSubscribedRequestH\x00\x12\x44\n\x12set_local_metadata\x18\t \x01(\x0b\x32&.livekit.proto.SetLocalMetadataRequestH\x00\x12<\n\x0eset_local_name\x18\n \x01(\x0b\x32\".livekit.proto.SetLocalNameRequestH\x00\x12H\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32(.livekit.proto.SetLocalAttributesRequestH\x00\x12\x42\n\x11get_session_stats\x18\x0c \x01(\x0b\x32%.livekit.proto.GetSessionStatsRequestH\x00\x12K\n\x15publish_transcription\x18\r \x01(\x0b\x32*.livekit.proto.PublishTranscriptionRequestH\x00\x12@\n\x10publish_sip_dtmf\x18\x0e \x01(\x0b\x32$.livekit.proto.PublishSipDtmfRequestH\x00\x12\x44\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32&.livekit.proto.CreateVideoTrackRequestH\x00\x12\x44\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32&.livekit.proto.CreateAudioTrackRequestH\x00\x12\x33\n\tget_stats\x18\x11 \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x12 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x13 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x15 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12@\n\x10new_audio_stream\x18\x17 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x18 \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x19 \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x1a \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1b \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1c \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x42\t\n\x07message\"\xb7\r\n\x0b\x46\x66iResponse\x12\x31\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.DisposeResponseH\x00\x12\x31\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1e.livekit.proto.ConnectResponseH\x00\x12\x37\n\ndisconnect\x18\x04 \x01(\x0b\x32!.livekit.proto.DisconnectResponseH\x00\x12<\n\rpublish_track\x18\x05 \x01(\x0b\x32#.livekit.proto.PublishTrackResponseH\x00\x12@\n\x0funpublish_track\x18\x06 \x01(\x0b\x32%.livekit.proto.UnpublishTrackResponseH\x00\x12:\n\x0cpublish_data\x18\x07 \x01(\x0b\x32\".livekit.proto.PublishDataResponseH\x00\x12>\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32$.livekit.proto.SetSubscribedResponseH\x00\x12\x45\n\x12set_local_metadata\x18\t \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataResponseH\x00\x12=\n\x0eset_local_name\x18\n \x01(\x0b\x32#.livekit.proto.SetLocalNameResponseH\x00\x12I\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32).livekit.proto.SetLocalAttributesResponseH\x00\x12\x43\n\x11get_session_stats\x18\x0c \x01(\x0b\x32&.livekit.proto.GetSessionStatsResponseH\x00\x12L\n\x15publish_transcription\x18\r \x01(\x0b\x32+.livekit.proto.PublishTranscriptionResponseH\x00\x12\x41\n\x10publish_sip_dtmf\x18\x0e \x01(\x0b\x32%.livekit.proto.PublishSipDtmfResponseH\x00\x12\x45\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32\'.livekit.proto.CreateVideoTrackResponseH\x00\x12\x45\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32\'.livekit.proto.CreateAudioTrackResponseH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x12 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x13 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x15 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x16 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x17 \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x18 \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12G\n\x13new_audio_resampler\x18\x19 \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1a \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18\x1b \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x42\t\n\x07message\"\xc6\t\n\x08\x46\x66iEvent\x12.\n\nroom_event\x18\x01 \x01(\x0b\x32\x18.livekit.proto.RoomEventH\x00\x12\x30\n\x0btrack_event\x18\x02 \x01(\x0b\x32\x19.livekit.proto.TrackEventH\x00\x12=\n\x12video_stream_event\x18\x03 \x01(\x0b\x32\x1f.livekit.proto.VideoStreamEventH\x00\x12=\n\x12\x61udio_stream_event\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.AudioStreamEventH\x00\x12\x31\n\x07\x63onnect\x18\x05 \x01(\x0b\x32\x1e.livekit.proto.ConnectCallbackH\x00\x12\x37\n\ndisconnect\x18\x07 \x01(\x0b\x32!.livekit.proto.DisconnectCallbackH\x00\x12\x31\n\x07\x64ispose\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.DisposeCallbackH\x00\x12<\n\rpublish_track\x18\t \x01(\x0b\x32#.livekit.proto.PublishTrackCallbackH\x00\x12@\n\x0funpublish_track\x18\n \x01(\x0b\x32%.livekit.proto.UnpublishTrackCallbackH\x00\x12:\n\x0cpublish_data\x18\x0b \x01(\x0b\x32\".livekit.proto.PublishDataCallbackH\x00\x12L\n\x15publish_transcription\x18\x0c \x01(\x0b\x32+.livekit.proto.PublishTranscriptionCallbackH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\r \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameCallbackH\x00\x12\x45\n\x12set_local_metadata\x18\x0e \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataCallbackH\x00\x12=\n\x0eset_local_name\x18\x0f \x01(\x0b\x32#.livekit.proto.SetLocalNameCallbackH\x00\x12I\n\x14set_local_attributes\x18\x10 \x01(\x0b\x32).livekit.proto.SetLocalAttributesCallbackH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsCallbackH\x00\x12\'\n\x04logs\x18\x12 \x01(\x0b\x32\x17.livekit.proto.LogBatchH\x00\x12\x43\n\x11get_session_stats\x18\x13 \x01(\x0b\x32&.livekit.proto.GetSessionStatsCallbackH\x00\x12%\n\x05panic\x18\x14 \x01(\x0b\x32\x14.livekit.proto.PanicH\x00\x12\x41\n\x10publish_sip_dtmf\x18\x15 \x01(\x0b\x32%.livekit.proto.PublishSipDtmfCallbackH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"5\n\x0f\x44isposeResponse\x12\x15\n\x08\x61sync_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x0b\n\t_async_id\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xb6\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x01(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x01(\t\x12\x18\n\x0bmodule_path\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x66ile\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04line\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07message\x18\x06 \x01(\tB\x0e\n\x0c_module_pathB\x07\n\x05_fileB\x07\n\x05_line\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x01(\t*S\n\x08LogLevel\x12\r\n\tLOG_ERROR\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x01\x12\x0c\n\x08LOG_INFO\x10\x02\x12\r\n\tLOG_DEBUG\x10\x03\x12\r\n\tLOG_TRACE\x10\x04\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3')
22
-
23
- _globals = globals()
24
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
25
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ffi_pb2', _globals)
26
- if _descriptor._USE_C_DESCRIPTORS == False:
27
- _globals['DESCRIPTOR']._options = None
28
- _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto'
29
- _globals['_LOGLEVEL']._serialized_start=5136
30
- _globals['_LOGLEVEL']._serialized_end=5219
31
- _globals['_FFIREQUEST']._serialized_start=104
32
- _globals['_FFIREQUEST']._serialized_end=1796
33
- _globals['_FFIRESPONSE']._serialized_start=1799
34
- _globals['_FFIRESPONSE']._serialized_end=3518
35
- _globals['_FFIEVENT']._serialized_start=3521
36
- _globals['_FFIEVENT']._serialized_end=4743
37
- _globals['_DISPOSEREQUEST']._serialized_start=4745
38
- _globals['_DISPOSEREQUEST']._serialized_end=4776
39
- _globals['_DISPOSERESPONSE']._serialized_start=4778
40
- _globals['_DISPOSERESPONSE']._serialized_end=4831
41
- _globals['_DISPOSECALLBACK']._serialized_start=4833
42
- _globals['_DISPOSECALLBACK']._serialized_end=4868
43
- _globals['_LOGRECORD']._serialized_start=4871
44
- _globals['_LOGRECORD']._serialized_end=5053
45
- _globals['_LOGBATCH']._serialized_start=5055
46
- _globals['_LOGBATCH']._serialized_end=5108
47
- _globals['_PANIC']._serialized_start=5110
48
- _globals['_PANIC']._serialized_end=5134
49
- # @@protoc_insertion_point(module_scope)
@@ -1 +0,0 @@
1
- __version__ = "0.13.1.dev0"
File without changes
File without changes
File without changes
File without changes