livekit 1.0.0__tar.gz → 1.0.2__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.
- {livekit-1.0.0 → livekit-1.0.2}/PKG-INFO +1 -1
- livekit-1.0.2/livekit/rtc/_proto/audio_frame_pb2.py +129 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/audio_frame_pb2.pyi +35 -0
- livekit-1.0.2/livekit/rtc/_proto/ffi_pb2.py +52 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/ffi_pb2.pyi +14 -6
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/apm.py +25 -0
- livekit-1.0.2/livekit/rtc/jupyter.py +53 -0
- livekit-1.0.2/livekit/rtc/resources/jupyter-html/index.html +101 -0
- livekit-1.0.2/livekit/rtc/version.py +1 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit.egg-info/PKG-INFO +1 -1
- {livekit-1.0.0 → livekit-1.0.2}/livekit.egg-info/SOURCES.txt +2 -0
- {livekit-1.0.0 → livekit-1.0.2}/setup.py +8 -1
- livekit-1.0.0/livekit/rtc/_proto/audio_frame_pb2.py +0 -125
- livekit-1.0.0/livekit/rtc/_proto/ffi_pb2.py +0 -52
- livekit-1.0.0/livekit/rtc/version.py +0 -1
- {livekit-1.0.0 → livekit-1.0.2}/README.md +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/__init__.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_ffi_client.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/__init__.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/e2ee_pb2.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/e2ee_pb2.pyi +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/handle_pb2.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/handle_pb2.pyi +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/participant_pb2.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/participant_pb2.pyi +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/room_pb2.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/room_pb2.pyi +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/rpc_pb2.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/rpc_pb2.pyi +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/stats_pb2.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/stats_pb2.pyi +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/track_pb2.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/track_pb2.pyi +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/track_publication_pb2.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/track_publication_pb2.pyi +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/video_frame_pb2.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_proto/video_frame_pb2.pyi +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/_utils.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/audio_filter.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/audio_frame.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/audio_mixer.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/audio_resampler.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/audio_source.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/audio_stream.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/data_stream.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/e2ee.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/event_emitter.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/log.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/participant.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/py.typed +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/resources/__init__.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/room.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/rpc.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/synchronizer.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/track.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/track_publication.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/transcription.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/utils.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/video_frame.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/video_source.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit/rtc/video_stream.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit.egg-info/dependency_links.txt +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit.egg-info/requires.txt +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/livekit.egg-info/top_level.txt +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/pyproject.toml +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/setup.cfg +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/tests/test_apm.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/tests/test_emitter.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/tests/test_mixer.py +0 -0
- {livekit-1.0.0 → livekit-1.0.2}/tests/test_resampler.py +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
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
|
+
from . import track_pb2 as track__pb2
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\x1a\x0btrack.proto\"\xc4\x01\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x1e\n\x16\x61udio_filter_module_id\x18\x05 \x01(\t\x12\x1c\n\x14\x61udio_filter_options\x18\x06 \x01(\t\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\x88\x02\n!AudioStreamFromParticipantRequest\x12\x1a\n\x12participant_handle\x18\x01 \x02(\x04\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\x12\x30\n\x0ctrack_source\x18\x03 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\x12\x13\n\x0bsample_rate\x18\x05 \x01(\r\x12\x14\n\x0cnum_channels\x18\x06 \x01(\r\x12\x1e\n\x16\x61udio_filter_module_id\x18\x07 \x01(\t\x12\x1c\n\x14\x61udio_filter_options\x18\x08 \x01(\t\"U\n\"AudioStreamFromParticipantResponse\x12/\n\x06stream\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xbb\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x32\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptions\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x14\n\x0cnum_channels\x18\x04 \x02(\r\x12\x15\n\rqueue_size_ms\x18\x05 \x01(\r\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"<\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"0\n\x17\x43learAudioBufferRequest\x12\x15\n\rsource_handle\x18\x01 \x02(\x04\"\x1a\n\x18\x43learAudioBufferResponse\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x02(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x95\x01\n\rNewApmRequest\x12\x1e\n\x16\x65\x63ho_canceller_enabled\x18\x01 \x02(\x08\x12\x1f\n\x17gain_controller_enabled\x18\x02 \x02(\x08\x12 \n\x18high_pass_filter_enabled\x18\x03 \x02(\x08\x12!\n\x19noise_suppression_enabled\x18\x04 \x02(\x08\"6\n\x0eNewApmResponse\x12$\n\x03\x61pm\x18\x01 \x02(\x0b\x32\x17.livekit.proto.OwnedApm\"x\n\x17\x41pmProcessStreamRequest\x12\x12\n\napm_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\x12\x14\n\x0cnum_channels\x18\x05 \x02(\r\")\n\x18\x41pmProcessStreamResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\"\x7f\n\x1e\x41pmProcessReverseStreamRequest\x12\x12\n\napm_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\x12\x13\n\x0bsample_rate\x18\x04 \x02(\r\x12\x14\n\x0cnum_channels\x18\x05 \x02(\r\"0\n\x1f\x41pmProcessReverseStreamResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\"@\n\x18\x41pmSetStreamDelayRequest\x12\x12\n\napm_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x65lay_ms\x18\x02 \x02(\x05\"*\n\x19\x41pmSetStreamDelayResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\"\x9c\x02\n\x16NewSoxResamplerRequest\x12\x12\n\ninput_rate\x18\x01 \x02(\x01\x12\x13\n\x0boutput_rate\x18\x02 \x02(\x01\x12\x14\n\x0cnum_channels\x18\x03 \x02(\r\x12<\n\x0finput_data_type\x18\x04 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12=\n\x10output_data_type\x18\x05 \x02(\x0e\x32#.livekit.proto.SoxResamplerDataType\x12\x37\n\x0equality_recipe\x18\x06 \x02(\x0e\x32\x1f.livekit.proto.SoxQualityRecipe\x12\r\n\x05\x66lags\x18\x07 \x01(\r\"l\n\x17NewSoxResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32 .livekit.proto.OwnedSoxResamplerH\x00\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x42\t\n\x07message\"S\n\x17PushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x0c\n\x04size\x18\x03 \x02(\r\"K\n\x18PushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"4\n\x18\x46lushSoxResamplerRequest\x12\x18\n\x10resampler_handle\x18\x01 \x02(\x04\"L\n\x19\x46lushSoxResamplerResponse\x12\x12\n\noutput_ptr\x18\x01 \x02(\x04\x12\x0c\n\x04size\x18\x02 \x02(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x02(\r\x12\x13\n\x0bsample_rate\x18\x03 \x02(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x02(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x02(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x02(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x02(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x02(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x02(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x02(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x02(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x02(\x0b\x32!.livekit.proto.AudioResamplerInfo\"9\n\x08OwnedApm\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\"\x12\n\x10SoxResamplerInfo\"q\n\x11OwnedSoxResampler\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12-\n\x04info\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.SoxResamplerInfo\"\\\n\x1cLoadAudioFilterPluginRequest\x12\x13\n\x0bplugin_path\x18\x01 \x02(\t\x12\x14\n\x0c\x64\x65pendencies\x18\x02 \x03(\t\x12\x11\n\tmodule_id\x18\x03 \x02(\t\".\n\x1dLoadAudioFilterPluginResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t*J\n\x14SoxResamplerDataType\x12\x18\n\x14SOXR_DATATYPE_INT16I\x10\x00\x12\x18\n\x14SOXR_DATATYPE_INT16S\x10\x01*\x8b\x01\n\x10SoxQualityRecipe\x12\x16\n\x12SOXR_QUALITY_QUICK\x10\x00\x12\x14\n\x10SOXR_QUALITY_LOW\x10\x01\x12\x17\n\x13SOXR_QUALITY_MEDIUM\x10\x02\x12\x15\n\x11SOXR_QUALITY_HIGH\x10\x03\x12\x19\n\x15SOXR_QUALITY_VERYHIGH\x10\x04*\x97\x01\n\x0bSoxFlagBits\x12\x16\n\x12SOXR_ROLLOFF_SMALL\x10\x00\x12\x17\n\x13SOXR_ROLLOFF_MEDIUM\x10\x01\x12\x15\n\x11SOXR_ROLLOFF_NONE\x10\x02\x12\x18\n\x14SOXR_HIGH_PREC_CLOCK\x10\x03\x12\x19\n\x15SOXR_DOUBLE_PRECISION\x10\x04\x12\x0b\n\x07SOXR_VR\x10\x05*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Proto')
|
|
20
|
+
|
|
21
|
+
_globals = globals()
|
|
22
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
23
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'audio_frame_pb2', _globals)
|
|
24
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
25
|
+
_globals['DESCRIPTOR']._options = None
|
|
26
|
+
_globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto'
|
|
27
|
+
_globals['_SOXRESAMPLERDATATYPE']._serialized_start=4372
|
|
28
|
+
_globals['_SOXRESAMPLERDATATYPE']._serialized_end=4446
|
|
29
|
+
_globals['_SOXQUALITYRECIPE']._serialized_start=4449
|
|
30
|
+
_globals['_SOXQUALITYRECIPE']._serialized_end=4588
|
|
31
|
+
_globals['_SOXFLAGBITS']._serialized_start=4591
|
|
32
|
+
_globals['_SOXFLAGBITS']._serialized_end=4742
|
|
33
|
+
_globals['_AUDIOSTREAMTYPE']._serialized_start=4744
|
|
34
|
+
_globals['_AUDIOSTREAMTYPE']._serialized_end=4809
|
|
35
|
+
_globals['_AUDIOSOURCETYPE']._serialized_start=4811
|
|
36
|
+
_globals['_AUDIOSOURCETYPE']._serialized_end=4853
|
|
37
|
+
_globals['_NEWAUDIOSTREAMREQUEST']._serialized_start=64
|
|
38
|
+
_globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=260
|
|
39
|
+
_globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=262
|
|
40
|
+
_globals['_NEWAUDIOSTREAMRESPONSE']._serialized_end=335
|
|
41
|
+
_globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_start=338
|
|
42
|
+
_globals['_AUDIOSTREAMFROMPARTICIPANTREQUEST']._serialized_end=602
|
|
43
|
+
_globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_start=604
|
|
44
|
+
_globals['_AUDIOSTREAMFROMPARTICIPANTRESPONSE']._serialized_end=689
|
|
45
|
+
_globals['_NEWAUDIOSOURCEREQUEST']._serialized_start=692
|
|
46
|
+
_globals['_NEWAUDIOSOURCEREQUEST']._serialized_end=879
|
|
47
|
+
_globals['_NEWAUDIOSOURCERESPONSE']._serialized_start=881
|
|
48
|
+
_globals['_NEWAUDIOSOURCERESPONSE']._serialized_end=954
|
|
49
|
+
_globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_start=956
|
|
50
|
+
_globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_end=1058
|
|
51
|
+
_globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_start=1060
|
|
52
|
+
_globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_end=1105
|
|
53
|
+
_globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_start=1107
|
|
54
|
+
_globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_end=1167
|
|
55
|
+
_globals['_CLEARAUDIOBUFFERREQUEST']._serialized_start=1169
|
|
56
|
+
_globals['_CLEARAUDIOBUFFERREQUEST']._serialized_end=1217
|
|
57
|
+
_globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_start=1219
|
|
58
|
+
_globals['_CLEARAUDIOBUFFERRESPONSE']._serialized_end=1245
|
|
59
|
+
_globals['_NEWAUDIORESAMPLERREQUEST']._serialized_start=1247
|
|
60
|
+
_globals['_NEWAUDIORESAMPLERREQUEST']._serialized_end=1273
|
|
61
|
+
_globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_start=1275
|
|
62
|
+
_globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_end=1357
|
|
63
|
+
_globals['_REMIXANDRESAMPLEREQUEST']._serialized_start=1360
|
|
64
|
+
_globals['_REMIXANDRESAMPLEREQUEST']._serialized_end=1507
|
|
65
|
+
_globals['_REMIXANDRESAMPLERESPONSE']._serialized_start=1509
|
|
66
|
+
_globals['_REMIXANDRESAMPLERESPONSE']._serialized_end=1589
|
|
67
|
+
_globals['_NEWAPMREQUEST']._serialized_start=1592
|
|
68
|
+
_globals['_NEWAPMREQUEST']._serialized_end=1741
|
|
69
|
+
_globals['_NEWAPMRESPONSE']._serialized_start=1743
|
|
70
|
+
_globals['_NEWAPMRESPONSE']._serialized_end=1797
|
|
71
|
+
_globals['_APMPROCESSSTREAMREQUEST']._serialized_start=1799
|
|
72
|
+
_globals['_APMPROCESSSTREAMREQUEST']._serialized_end=1919
|
|
73
|
+
_globals['_APMPROCESSSTREAMRESPONSE']._serialized_start=1921
|
|
74
|
+
_globals['_APMPROCESSSTREAMRESPONSE']._serialized_end=1962
|
|
75
|
+
_globals['_APMPROCESSREVERSESTREAMREQUEST']._serialized_start=1964
|
|
76
|
+
_globals['_APMPROCESSREVERSESTREAMREQUEST']._serialized_end=2091
|
|
77
|
+
_globals['_APMPROCESSREVERSESTREAMRESPONSE']._serialized_start=2093
|
|
78
|
+
_globals['_APMPROCESSREVERSESTREAMRESPONSE']._serialized_end=2141
|
|
79
|
+
_globals['_APMSETSTREAMDELAYREQUEST']._serialized_start=2143
|
|
80
|
+
_globals['_APMSETSTREAMDELAYREQUEST']._serialized_end=2207
|
|
81
|
+
_globals['_APMSETSTREAMDELAYRESPONSE']._serialized_start=2209
|
|
82
|
+
_globals['_APMSETSTREAMDELAYRESPONSE']._serialized_end=2251
|
|
83
|
+
_globals['_NEWSOXRESAMPLERREQUEST']._serialized_start=2254
|
|
84
|
+
_globals['_NEWSOXRESAMPLERREQUEST']._serialized_end=2538
|
|
85
|
+
_globals['_NEWSOXRESAMPLERRESPONSE']._serialized_start=2540
|
|
86
|
+
_globals['_NEWSOXRESAMPLERRESPONSE']._serialized_end=2648
|
|
87
|
+
_globals['_PUSHSOXRESAMPLERREQUEST']._serialized_start=2650
|
|
88
|
+
_globals['_PUSHSOXRESAMPLERREQUEST']._serialized_end=2733
|
|
89
|
+
_globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_start=2735
|
|
90
|
+
_globals['_PUSHSOXRESAMPLERRESPONSE']._serialized_end=2810
|
|
91
|
+
_globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_start=2812
|
|
92
|
+
_globals['_FLUSHSOXRESAMPLERREQUEST']._serialized_end=2864
|
|
93
|
+
_globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_start=2866
|
|
94
|
+
_globals['_FLUSHSOXRESAMPLERRESPONSE']._serialized_end=2942
|
|
95
|
+
_globals['_AUDIOFRAMEBUFFERINFO']._serialized_start=2944
|
|
96
|
+
_globals['_AUDIOFRAMEBUFFERINFO']._serialized_end=3056
|
|
97
|
+
_globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_start=3058
|
|
98
|
+
_globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_end=3179
|
|
99
|
+
_globals['_AUDIOSTREAMINFO']._serialized_start=3181
|
|
100
|
+
_globals['_AUDIOSTREAMINFO']._serialized_end=3244
|
|
101
|
+
_globals['_OWNEDAUDIOSTREAM']._serialized_start=3246
|
|
102
|
+
_globals['_OWNEDAUDIOSTREAM']._serialized_end=3357
|
|
103
|
+
_globals['_AUDIOSTREAMEVENT']._serialized_start=3360
|
|
104
|
+
_globals['_AUDIOSTREAMEVENT']._serialized_end=3519
|
|
105
|
+
_globals['_AUDIOFRAMERECEIVED']._serialized_start=3521
|
|
106
|
+
_globals['_AUDIOFRAMERECEIVED']._serialized_end=3594
|
|
107
|
+
_globals['_AUDIOSTREAMEOS']._serialized_start=3596
|
|
108
|
+
_globals['_AUDIOSTREAMEOS']._serialized_end=3612
|
|
109
|
+
_globals['_AUDIOSOURCEOPTIONS']._serialized_start=3614
|
|
110
|
+
_globals['_AUDIOSOURCEOPTIONS']._serialized_end=3715
|
|
111
|
+
_globals['_AUDIOSOURCEINFO']._serialized_start=3717
|
|
112
|
+
_globals['_AUDIOSOURCEINFO']._serialized_end=3780
|
|
113
|
+
_globals['_OWNEDAUDIOSOURCE']._serialized_start=3782
|
|
114
|
+
_globals['_OWNEDAUDIOSOURCE']._serialized_end=3893
|
|
115
|
+
_globals['_AUDIORESAMPLERINFO']._serialized_start=3895
|
|
116
|
+
_globals['_AUDIORESAMPLERINFO']._serialized_end=3915
|
|
117
|
+
_globals['_OWNEDAUDIORESAMPLER']._serialized_start=3917
|
|
118
|
+
_globals['_OWNEDAUDIORESAMPLER']._serialized_end=4034
|
|
119
|
+
_globals['_OWNEDAPM']._serialized_start=4036
|
|
120
|
+
_globals['_OWNEDAPM']._serialized_end=4093
|
|
121
|
+
_globals['_SOXRESAMPLERINFO']._serialized_start=4095
|
|
122
|
+
_globals['_SOXRESAMPLERINFO']._serialized_end=4113
|
|
123
|
+
_globals['_OWNEDSOXRESAMPLER']._serialized_start=4115
|
|
124
|
+
_globals['_OWNEDSOXRESAMPLER']._serialized_end=4228
|
|
125
|
+
_globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_start=4230
|
|
126
|
+
_globals['_LOADAUDIOFILTERPLUGINREQUEST']._serialized_end=4322
|
|
127
|
+
_globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_start=4324
|
|
128
|
+
_globals['_LOADAUDIOFILTERPLUGINRESPONSE']._serialized_end=4370
|
|
129
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -585,6 +585,41 @@ class ApmProcessReverseStreamResponse(google.protobuf.message.Message):
|
|
|
585
585
|
|
|
586
586
|
global___ApmProcessReverseStreamResponse = ApmProcessReverseStreamResponse
|
|
587
587
|
|
|
588
|
+
@typing.final
|
|
589
|
+
class ApmSetStreamDelayRequest(google.protobuf.message.Message):
|
|
590
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
591
|
+
|
|
592
|
+
APM_HANDLE_FIELD_NUMBER: builtins.int
|
|
593
|
+
DELAY_MS_FIELD_NUMBER: builtins.int
|
|
594
|
+
apm_handle: builtins.int
|
|
595
|
+
delay_ms: builtins.int
|
|
596
|
+
def __init__(
|
|
597
|
+
self,
|
|
598
|
+
*,
|
|
599
|
+
apm_handle: builtins.int | None = ...,
|
|
600
|
+
delay_ms: builtins.int | None = ...,
|
|
601
|
+
) -> None: ...
|
|
602
|
+
def HasField(self, field_name: typing.Literal["apm_handle", b"apm_handle", "delay_ms", b"delay_ms"]) -> builtins.bool: ...
|
|
603
|
+
def ClearField(self, field_name: typing.Literal["apm_handle", b"apm_handle", "delay_ms", b"delay_ms"]) -> None: ...
|
|
604
|
+
|
|
605
|
+
global___ApmSetStreamDelayRequest = ApmSetStreamDelayRequest
|
|
606
|
+
|
|
607
|
+
@typing.final
|
|
608
|
+
class ApmSetStreamDelayResponse(google.protobuf.message.Message):
|
|
609
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
610
|
+
|
|
611
|
+
ERROR_FIELD_NUMBER: builtins.int
|
|
612
|
+
error: builtins.str
|
|
613
|
+
def __init__(
|
|
614
|
+
self,
|
|
615
|
+
*,
|
|
616
|
+
error: builtins.str | None = ...,
|
|
617
|
+
) -> None: ...
|
|
618
|
+
def HasField(self, field_name: typing.Literal["error", b"error"]) -> builtins.bool: ...
|
|
619
|
+
def ClearField(self, field_name: typing.Literal["error", b"error"]) -> None: ...
|
|
620
|
+
|
|
621
|
+
global___ApmSetStreamDelayResponse = ApmSetStreamDelayResponse
|
|
622
|
+
|
|
588
623
|
@typing.final
|
|
589
624
|
class NewSoxResamplerRequest(google.protobuf.message.Message):
|
|
590
625
|
"""New resampler using SoX (much better quality)"""
|
|
@@ -0,0 +1,52 @@
|
|
|
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 track_publication_pb2 as track__publication__pb2
|
|
18
|
+
from . import room_pb2 as room__pb2
|
|
19
|
+
from . import video_frame_pb2 as video__frame__pb2
|
|
20
|
+
from . import audio_frame_pb2 as audio__frame__pb2
|
|
21
|
+
from . import rpc_pb2 as rpc__pb2
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\x17track_publication.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\x1a\trpc.proto\"\x8e\x1d\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\x42\t\n\x07message\"\xfe\x1c\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\x42\t\n\x07message\"\xdf\x0c\n\x08\x46\x66iEvent\x12.\n\nroom_event\x18\x01 \x01(\x0b\x32\x18.livekit.proto.RoomEventH\x00\x12\x30\n\x0btrack_event\x18\x02 \x01(\x0b\x32\x19.livekit.proto.TrackEventH\x00\x12=\n\x12video_stream_event\x18\x03 \x01(\x0b\x32\x1f.livekit.proto.VideoStreamEventH\x00\x12=\n\x12\x61udio_stream_event\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.AudioStreamEventH\x00\x12\x31\n\x07\x63onnect\x18\x05 \x01(\x0b\x32\x1e.livekit.proto.ConnectCallbackH\x00\x12\x37\n\ndisconnect\x18\x07 \x01(\x0b\x32!.livekit.proto.DisconnectCallbackH\x00\x12\x31\n\x07\x64ispose\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.DisposeCallbackH\x00\x12<\n\rpublish_track\x18\t \x01(\x0b\x32#.livekit.proto.PublishTrackCallbackH\x00\x12@\n\x0funpublish_track\x18\n \x01(\x0b\x32%.livekit.proto.UnpublishTrackCallbackH\x00\x12:\n\x0cpublish_data\x18\x0b \x01(\x0b\x32\".livekit.proto.PublishDataCallbackH\x00\x12L\n\x15publish_transcription\x18\x0c \x01(\x0b\x32+.livekit.proto.PublishTranscriptionCallbackH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\r \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameCallbackH\x00\x12\x45\n\x12set_local_metadata\x18\x0e \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataCallbackH\x00\x12=\n\x0eset_local_name\x18\x0f \x01(\x0b\x32#.livekit.proto.SetLocalNameCallbackH\x00\x12I\n\x14set_local_attributes\x18\x10 \x01(\x0b\x32).livekit.proto.SetLocalAttributesCallbackH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsCallbackH\x00\x12\'\n\x04logs\x18\x12 \x01(\x0b\x32\x17.livekit.proto.LogBatchH\x00\x12\x43\n\x11get_session_stats\x18\x13 \x01(\x0b\x32&.livekit.proto.GetSessionStatsCallbackH\x00\x12%\n\x05panic\x18\x14 \x01(\x0b\x32\x14.livekit.proto.PanicH\x00\x12\x41\n\x10publish_sip_dtmf\x18\x15 \x01(\x0b\x32%.livekit.proto.PublishSipDtmfCallbackH\x00\x12>\n\x0c\x63hat_message\x18\x16 \x01(\x0b\x32&.livekit.proto.SendChatMessageCallbackH\x00\x12\x38\n\x0bperform_rpc\x18\x17 \x01(\x0b\x32!.livekit.proto.PerformRpcCallbackH\x00\x12H\n\x15rpc_method_invocation\x18\x18 \x01(\x0b\x32\'.livekit.proto.RpcMethodInvocationEventH\x00\x12\x45\n\x12send_stream_header\x18\x19 \x01(\x0b\x32\'.livekit.proto.SendStreamHeaderCallbackH\x00\x12\x43\n\x11send_stream_chunk\x18\x1a \x01(\x0b\x32&.livekit.proto.SendStreamChunkCallbackH\x00\x12G\n\x13send_stream_trailer\x18\x1b \x01(\x0b\x32(.livekit.proto.SendStreamTrailerCallbackH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x02(\x08\"#\n\x0f\x44isposeResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\x85\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x02(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x02(\t\x12\x13\n\x0bmodule_path\x18\x03 \x01(\t\x12\x0c\n\x04\x66ile\x18\x04 \x01(\t\x12\x0c\n\x04line\x18\x05 \x01(\r\x12\x0f\n\x07message\x18\x06 \x02(\t\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x02(\t*S\n\x08LogLevel\x12\r\n\tLOG_ERROR\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x01\x12\x0c\n\x08LOG_INFO\x10\x02\x12\r\n\tLOG_DEBUG\x10\x03\x12\r\n\tLOG_TRACE\x10\x04\x42\x10\xaa\x02\rLiveKit.Proto')
|
|
25
|
+
|
|
26
|
+
_globals = globals()
|
|
27
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
28
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ffi_pb2', _globals)
|
|
29
|
+
if _descriptor._USE_C_DESCRIPTORS == False:
|
|
30
|
+
_globals['DESCRIPTOR']._options = None
|
|
31
|
+
_globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto'
|
|
32
|
+
_globals['_LOGLEVEL']._serialized_start=9539
|
|
33
|
+
_globals['_LOGLEVEL']._serialized_end=9622
|
|
34
|
+
_globals['_FFIREQUEST']._serialized_start=140
|
|
35
|
+
_globals['_FFIREQUEST']._serialized_end=3866
|
|
36
|
+
_globals['_FFIRESPONSE']._serialized_start=3869
|
|
37
|
+
_globals['_FFIRESPONSE']._serialized_end=7579
|
|
38
|
+
_globals['_FFIEVENT']._serialized_start=7582
|
|
39
|
+
_globals['_FFIEVENT']._serialized_end=9213
|
|
40
|
+
_globals['_DISPOSEREQUEST']._serialized_start=9215
|
|
41
|
+
_globals['_DISPOSEREQUEST']._serialized_end=9246
|
|
42
|
+
_globals['_DISPOSERESPONSE']._serialized_start=9248
|
|
43
|
+
_globals['_DISPOSERESPONSE']._serialized_end=9283
|
|
44
|
+
_globals['_DISPOSECALLBACK']._serialized_start=9285
|
|
45
|
+
_globals['_DISPOSECALLBACK']._serialized_end=9320
|
|
46
|
+
_globals['_LOGRECORD']._serialized_start=9323
|
|
47
|
+
_globals['_LOGRECORD']._serialized_end=9456
|
|
48
|
+
_globals['_LOGBATCH']._serialized_start=9458
|
|
49
|
+
_globals['_LOGBATCH']._serialized_end=9511
|
|
50
|
+
_globals['_PANIC']._serialized_start=9513
|
|
51
|
+
_globals['_PANIC']._serialized_end=9537
|
|
52
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -145,6 +145,7 @@ class FfiRequest(google.protobuf.message.Message):
|
|
|
145
145
|
NEW_APM_FIELD_NUMBER: builtins.int
|
|
146
146
|
APM_PROCESS_STREAM_FIELD_NUMBER: builtins.int
|
|
147
147
|
APM_PROCESS_REVERSE_STREAM_FIELD_NUMBER: builtins.int
|
|
148
|
+
APM_SET_STREAM_DELAY_FIELD_NUMBER: builtins.int
|
|
148
149
|
@property
|
|
149
150
|
def dispose(self) -> global___DisposeRequest: ...
|
|
150
151
|
@property
|
|
@@ -265,6 +266,8 @@ class FfiRequest(google.protobuf.message.Message):
|
|
|
265
266
|
def apm_process_stream(self) -> audio_frame_pb2.ApmProcessStreamRequest: ...
|
|
266
267
|
@property
|
|
267
268
|
def apm_process_reverse_stream(self) -> audio_frame_pb2.ApmProcessReverseStreamRequest: ...
|
|
269
|
+
@property
|
|
270
|
+
def apm_set_stream_delay(self) -> audio_frame_pb2.ApmSetStreamDelayRequest: ...
|
|
268
271
|
def __init__(
|
|
269
272
|
self,
|
|
270
273
|
*,
|
|
@@ -319,10 +322,11 @@ class FfiRequest(google.protobuf.message.Message):
|
|
|
319
322
|
new_apm: audio_frame_pb2.NewApmRequest | None = ...,
|
|
320
323
|
apm_process_stream: audio_frame_pb2.ApmProcessStreamRequest | None = ...,
|
|
321
324
|
apm_process_reverse_stream: audio_frame_pb2.ApmProcessReverseStreamRequest | None = ...,
|
|
325
|
+
apm_set_stream_delay: audio_frame_pb2.ApmSetStreamDelayRequest | None = ...,
|
|
322
326
|
) -> None: ...
|
|
323
|
-
def HasField(self, field_name: typing.Literal["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "edit_chat_message", b"edit_chat_message", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_track_mute", b"local_track_mute", "message", b"message", "new_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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "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: ...
|
|
324
|
-
def ClearField(self, field_name: typing.Literal["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "edit_chat_message", b"edit_chat_message", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_track_mute", b"local_track_mute", "message", b"message", "new_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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "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: ...
|
|
325
|
-
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"] | None: ...
|
|
327
|
+
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", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "edit_chat_message", b"edit_chat_message", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_track_mute", b"local_track_mute", "message", b"message", "new_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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "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: ...
|
|
328
|
+
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", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "edit_chat_message", b"edit_chat_message", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_track_mute", b"local_track_mute", "message", b"message", "new_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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "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: ...
|
|
329
|
+
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"] | None: ...
|
|
326
330
|
|
|
327
331
|
global___FfiRequest = FfiRequest
|
|
328
332
|
|
|
@@ -382,6 +386,7 @@ class FfiResponse(google.protobuf.message.Message):
|
|
|
382
386
|
NEW_APM_FIELD_NUMBER: builtins.int
|
|
383
387
|
APM_PROCESS_STREAM_FIELD_NUMBER: builtins.int
|
|
384
388
|
APM_PROCESS_REVERSE_STREAM_FIELD_NUMBER: builtins.int
|
|
389
|
+
APM_SET_STREAM_DELAY_FIELD_NUMBER: builtins.int
|
|
385
390
|
@property
|
|
386
391
|
def dispose(self) -> global___DisposeResponse: ...
|
|
387
392
|
@property
|
|
@@ -500,6 +505,8 @@ class FfiResponse(google.protobuf.message.Message):
|
|
|
500
505
|
def apm_process_stream(self) -> audio_frame_pb2.ApmProcessStreamResponse: ...
|
|
501
506
|
@property
|
|
502
507
|
def apm_process_reverse_stream(self) -> audio_frame_pb2.ApmProcessReverseStreamResponse: ...
|
|
508
|
+
@property
|
|
509
|
+
def apm_set_stream_delay(self) -> audio_frame_pb2.ApmSetStreamDelayResponse: ...
|
|
503
510
|
def __init__(
|
|
504
511
|
self,
|
|
505
512
|
*,
|
|
@@ -553,10 +560,11 @@ class FfiResponse(google.protobuf.message.Message):
|
|
|
553
560
|
new_apm: audio_frame_pb2.NewApmResponse | None = ...,
|
|
554
561
|
apm_process_stream: audio_frame_pb2.ApmProcessStreamResponse | None = ...,
|
|
555
562
|
apm_process_reverse_stream: audio_frame_pb2.ApmProcessReverseStreamResponse | None = ...,
|
|
563
|
+
apm_set_stream_delay: audio_frame_pb2.ApmSetStreamDelayResponse | None = ...,
|
|
556
564
|
) -> None: ...
|
|
557
|
-
def HasField(self, field_name: typing.Literal["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_track_mute", b"local_track_mute", "message", b"message", "new_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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "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: ...
|
|
558
|
-
def ClearField(self, field_name: typing.Literal["apm_process_reverse_stream", b"apm_process_reverse_stream", "apm_process_stream", b"apm_process_stream", "audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_track_mute", b"local_track_mute", "message", b"message", "new_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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "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: ...
|
|
559
|
-
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"] | None: ...
|
|
565
|
+
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", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_track_mute", b"local_track_mute", "message", b"message", "new_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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "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: ...
|
|
566
|
+
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", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "load_audio_filter_plugin", b"load_audio_filter_plugin", "local_track_mute", b"local_track_mute", "message", b"message", "new_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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "send_stream_chunk", b"send_stream_chunk", "send_stream_header", b"send_stream_header", "send_stream_trailer", b"send_stream_trailer", "set_data_channel_buffered_amount_low_threshold", b"set_data_channel_buffered_amount_low_threshold", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "set_track_subscription_permissions", b"set_track_subscription_permissions", "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: ...
|
|
567
|
+
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"] | None: ...
|
|
560
568
|
|
|
561
569
|
global___FfiResponse = FfiResponse
|
|
562
570
|
|
|
@@ -86,3 +86,28 @@ class AudioProcessingModule:
|
|
|
86
86
|
|
|
87
87
|
if resp.apm_process_stream.error:
|
|
88
88
|
raise RuntimeError(resp.apm_process_stream.error)
|
|
89
|
+
|
|
90
|
+
def set_stream_delay_ms(self, delay_ms: int) -> None:
|
|
91
|
+
"""
|
|
92
|
+
This must be called if and only if echo processing is enabled.
|
|
93
|
+
|
|
94
|
+
Sets the `delay` in ms between `process_reverse_stream()` receiving a far-end
|
|
95
|
+
frame and `process_stream()` receiving a near-end frame containing the
|
|
96
|
+
corresponding echo. On the client-side this can be expressed as
|
|
97
|
+
delay = (t_render - t_analyze) + (t_process - t_capture)
|
|
98
|
+
where,
|
|
99
|
+
- t_analyze is the time a frame is passed to `process_reverse_stream()` and
|
|
100
|
+
t_render is the time the first sample of the same frame is rendered by
|
|
101
|
+
the audio hardware.
|
|
102
|
+
- t_capture is the time the first sample of a frame is captured by the
|
|
103
|
+
audio hardware and t_process is the time the same frame is passed to
|
|
104
|
+
`process_stream()`.
|
|
105
|
+
"""
|
|
106
|
+
req = proto_ffi.FfiRequest()
|
|
107
|
+
req.apm_set_stream_delay.apm_handle = self._ffi_handle.handle
|
|
108
|
+
req.apm_set_stream_delay.delay_ms = delay_ms
|
|
109
|
+
|
|
110
|
+
resp = FfiClient.instance.request(req)
|
|
111
|
+
|
|
112
|
+
if resp.apm_set_stream_delay.error:
|
|
113
|
+
raise RuntimeError(resp.apm_set_stream_delay.error)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# type: ignore
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
import atexit
|
|
5
|
+
import contextlib
|
|
6
|
+
from IPython.core.display import HTML
|
|
7
|
+
from IPython.display import display
|
|
8
|
+
from importlib.resources import as_file, files
|
|
9
|
+
|
|
10
|
+
_resource_stack = contextlib.ExitStack()
|
|
11
|
+
atexit.register(_resource_stack.close)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def room_html(url: str, token: str) -> HTML:
|
|
15
|
+
"""
|
|
16
|
+
Generate the HTML needed to embed a LiveKit room.
|
|
17
|
+
|
|
18
|
+
Args:
|
|
19
|
+
url (str): The LiveKit room URL.
|
|
20
|
+
token (str): The LiveKit join token.
|
|
21
|
+
|
|
22
|
+
Important:
|
|
23
|
+
The returned HTML contains the provided `url` and `token` values directly.
|
|
24
|
+
Avoid using sensitive tokens in public notebooks (e.g., tokens with long expiration times).
|
|
25
|
+
"""
|
|
26
|
+
token_placeholder = "##livekit-token-placeholder##"
|
|
27
|
+
url_placeholder = "##livekit-url-placeholder##"
|
|
28
|
+
|
|
29
|
+
index_path = files("livekit.rtc.resources") / "jupyter-html" / "index.html"
|
|
30
|
+
index_path = _resource_stack.enter_context(as_file(index_path))
|
|
31
|
+
|
|
32
|
+
# turns out that directly replacing the URL/token is necessary, as Colab or Jupyter comms become
|
|
33
|
+
# unreliable when the main thread is busy/blocked.
|
|
34
|
+
# it also avoid the need to use --expose-app-in-browser when starting jupyter notebook
|
|
35
|
+
html_text = index_path.read_text()
|
|
36
|
+
html_text = html_text.replace(token_placeholder, token)
|
|
37
|
+
html_text = html_text.replace(url_placeholder, url)
|
|
38
|
+
return HTML(html_text)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def display_room(url: str, token: str) -> None:
|
|
42
|
+
"""
|
|
43
|
+
Display a LiveKit room in a Jupyter notebook or Google Colab.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
url (str): The LiveKit room URL.
|
|
47
|
+
token (str): The LiveKit join token.
|
|
48
|
+
|
|
49
|
+
Important:
|
|
50
|
+
The rendered HTML will include the provided `url` and `token` in plain text.
|
|
51
|
+
Avoid using sensitive tokens in public notebooks (e.g., tokens with long expiration times).
|
|
52
|
+
"""
|
|
53
|
+
display(room_html(url, token))
|