from collections.abc import Callable, Sequence import datetime import enum from typing import overload class IceServer: @overload def __init__(self, arg: str, /) -> None: ... @overload def __init__(self, arg0: str, arg1: int, /) -> None: ... @overload def __init__(self, arg0: str, arg1: str, /) -> None: ... @overload def __init__(self, hostname: str, port: int, username: str, password: str, relay_type: IceServer.RelayType = IceServer.RelayType.TurnUdp) -> None: ... @overload def __init__(self, hostname: str, service: str, username: str, password: str, relay_type: IceServer.RelayType = IceServer.RelayType.TurnUdp) -> None: ... class Type(enum.Enum): Stun = 0 Turn = 1 class RelayType(enum.Enum): TurnUdp = 0 TurnTcp = 1 TurnTls = 2 @property def hostname(self) -> str: ... @hostname.setter def hostname(self, arg: str, /) -> None: ... @property def port(self) -> int: ... @port.setter def port(self, arg: int, /) -> None: ... @property def type(self) -> IceServer.Type: ... @type.setter def type(self, arg: IceServer.Type, /) -> None: ... @property def username(self) -> str: ... @username.setter def username(self, arg: str, /) -> None: ... @property def password(self) -> str: ... @password.setter def password(self, arg: str, /) -> None: ... @property def relay_type(self) -> IceServer.RelayType: ... @relay_type.setter def relay_type(self, arg: IceServer.RelayType, /) -> None: ... class ProxyServer: @overload def __init__(self, arg: str, /) -> None: ... @overload def __init__(self, arg0: ProxyServer.Type, arg1: str, arg2: int, /) -> None: ... @overload def __init__(self, arg0: ProxyServer.Type, arg1: str, arg2: int, arg3: str, arg4: str, /) -> None: ... class Type(enum.Enum): Http = 0 Socks5 = 1 @property def type(self) -> ProxyServer.Type: ... @type.setter def type(self, arg: ProxyServer.Type, /) -> None: ... @property def hostname(self) -> str: ... @hostname.setter def hostname(self, arg: str, /) -> None: ... @property def port(self) -> int: ... @port.setter def port(self, arg: int, /) -> None: ... @property def username(self) -> str | None: ... @username.setter def username(self, arg: str | None) -> None: ... @property def password(self) -> str | None: ... @password.setter def password(self, arg: str | None) -> None: ... class CertificateType(enum.Enum): Default = 0 Ecdsa = 1 Rsa = 2 class TransportPolicy(enum.Enum): All = 0 Relay = 1 class Configuration: def __init__(self) -> None: ... @property def ice_servers(self) -> list[IceServer]: ... @ice_servers.setter def ice_servers(self, arg: Sequence[IceServer], /) -> None: ... @property def proxy_server(self) -> ProxyServer | None: ... @proxy_server.setter def proxy_server(self, arg: ProxyServer | None) -> None: ... @property def bind_address(self) -> str | None: ... @bind_address.setter def bind_address(self, arg: str | None) -> None: ... @property def certificate_type(self) -> CertificateType: ... @certificate_type.setter def certificate_type(self, arg: CertificateType, /) -> None: ... @property def ice_transport_policy(self) -> TransportPolicy: ... @ice_transport_policy.setter def ice_transport_policy(self, arg: TransportPolicy, /) -> None: ... @property def enable_ice_tcp(self) -> bool: ... @enable_ice_tcp.setter def enable_ice_tcp(self, arg: bool, /) -> None: ... @property def enable_ice_udp_mux(self) -> bool: ... @enable_ice_udp_mux.setter def enable_ice_udp_mux(self, arg: bool, /) -> None: ... @property def disable_auto_negotiation(self) -> bool: ... @disable_auto_negotiation.setter def disable_auto_negotiation(self, arg: bool, /) -> None: ... @property def disable_auto_gathering(self) -> bool: ... @disable_auto_gathering.setter def disable_auto_gathering(self, arg: bool, /) -> None: ... @property def force_media_transport(self) -> bool: ... @force_media_transport.setter def force_media_transport(self, arg: bool, /) -> None: ... @property def disable_fingerprint_verification(self) -> bool: ... @disable_fingerprint_verification.setter def disable_fingerprint_verification(self, arg: bool, /) -> None: ... @property def port_range_begin(self) -> int: ... @port_range_begin.setter def port_range_begin(self, arg: int, /) -> None: ... @property def port_range_end(self) -> int: ... @port_range_end.setter def port_range_end(self, arg: int, /) -> None: ... @property def mtu(self) -> int | None: ... @mtu.setter def mtu(self, arg: int | None) -> None: ... @property def max_message_size(self) -> int | None: ... @max_message_size.setter def max_message_size(self, arg: int | None) -> None: ... @property def certificate_pem_file(self) -> str | None: ... @certificate_pem_file.setter def certificate_pem_file(self, arg: str | None) -> None: ... @property def key_pem_file(self) -> str | None: ... @key_pem_file.setter def key_pem_file(self, arg: str | None) -> None: ... @property def key_pem_pass(self) -> str | None: ... @key_pem_pass.setter def key_pem_pass(self, arg: str | None) -> None: ... class WebSocketConfiguration: def __init__(self) -> None: ... @property def disable_tls_verification(self) -> bool: ... @disable_tls_verification.setter def disable_tls_verification(self, arg: bool, /) -> None: ... @property def proxy_server(self) -> ProxyServer | None: ... @proxy_server.setter def proxy_server(self, arg: ProxyServer | None) -> None: ... @property def protocols(self) -> list[str]: ... @protocols.setter def protocols(self, arg: Sequence[str], /) -> None: ... @property def connection_timeout(self) -> datetime.timedelta | None: ... @connection_timeout.setter def connection_timeout(self, arg: datetime.timedelta | float | None) -> None: ... @property def ping_interval(self) -> datetime.timedelta | None: ... @ping_interval.setter def ping_interval(self, arg: datetime.timedelta | float | None) -> None: ... @property def max_outstanding_pings(self) -> int | None: ... @max_outstanding_pings.setter def max_outstanding_pings(self, arg: int | None) -> None: ... @property def ca_certificate_pem_file(self) -> str | None: ... @ca_certificate_pem_file.setter def ca_certificate_pem_file(self, arg: str | None) -> None: ... @property def certificate_pem_file(self) -> str | None: ... @certificate_pem_file.setter def certificate_pem_file(self, arg: str | None) -> None: ... @property def key_pem_file(self) -> str | None: ... @key_pem_file.setter def key_pem_file(self, arg: str | None) -> None: ... @property def key_pem_pass(self) -> str | None: ... @key_pem_pass.setter def key_pem_pass(self, arg: str | None) -> None: ... @property def max_message_size(self) -> int | None: ... @max_message_size.setter def max_message_size(self, arg: int | None) -> None: ... class WebSocketServerConfiguration: def __init__(self) -> None: ... @property def port(self) -> int: ... @port.setter def port(self, arg: int, /) -> None: ... @property def enable_tls(self) -> bool: ... @enable_tls.setter def enable_tls(self, arg: bool, /) -> None: ... @property def certificate_pem_file(self) -> str | None: ... @certificate_pem_file.setter def certificate_pem_file(self, arg: str | None) -> None: ... @property def key_pem_file(self) -> str | None: ... @key_pem_file.setter def key_pem_file(self, arg: str | None) -> None: ... @property def key_pem_pass(self) -> str | None: ... @key_pem_pass.setter def key_pem_pass(self, arg: str | None) -> None: ... @property def bind_address(self) -> str | None: ... @bind_address.setter def bind_address(self, arg: str | None) -> None: ... @property def connection_timeout(self) -> datetime.timedelta | None: ... @connection_timeout.setter def connection_timeout(self, arg: datetime.timedelta | float | None) -> None: ... @property def max_message_size(self) -> int | None: ... @max_message_size.setter def max_message_size(self, arg: int | None) -> None: ... class CertificateFingerprint: def __init__(self) -> None: ... class Algorithm(enum.Enum): Sha1 = 0 Sha224 = 1 Sha256 = 2 Sha384 = 3 Sha512 = 4 @property def algorithm(self) -> CertificateFingerprint.Algorithm: ... @algorithm.setter def algorithm(self, arg: CertificateFingerprint.Algorithm, /) -> None: ... @property def value(self) -> str: ... @value.setter def value(self, arg: str, /) -> None: ... def is_valid(self) -> bool: ... @staticmethod def algorithm_identifier(arg: CertificateFingerprint.Algorithm, /) -> str: ... @staticmethod def algorithm_size(arg: CertificateFingerprint.Algorithm, /) -> int: ... class Description: @overload def __init__(self, sdp: str, type: Description.Type = Description.Type.Unspec, role: Description.Role = Description.Role.ActPass) -> None: ... @overload def __init__(self, sdp: str, type_string: str) -> None: ... class Type(enum.Enum): Unspec = 0 Offer = 1 Answer = 2 Pranswer = 3 Rollback = 4 class Role(enum.Enum): ActPass = 0 Passive = 1 Active = 2 class Direction(enum.Enum): SendOnly = 1 RecvOnly = 2 SendRecv = 3 Inactive = 4 Unknown = 0 class Entry: class ExtMap: @overload def __init__(self, id: int, uri: str, direction: Description.Direction = Description.Direction.Unknown) -> None: ... @overload def __init__(self, description: str) -> None: ... def set_description(self, arg: str, /) -> None: ... @staticmethod def parse_id(arg: str, /) -> int: ... @property def id(self) -> int: ... @id.setter def id(self, arg: int, /) -> None: ... @property def uri(self) -> str: ... @uri.setter def uri(self, arg: str, /) -> None: ... @property def attributes(self) -> str: ... @attributes.setter def attributes(self, arg: str, /) -> None: ... @property def direction(self) -> Description.Direction: ... @direction.setter def direction(self, arg: Description.Direction, /) -> None: ... def type(self) -> str: ... def protocol(self) -> str: ... def description(self) -> str: ... def mid(self) -> str: ... def direction(self) -> Description.Direction: ... def set_direction(self, arg: Description.Direction, /) -> None: ... def is_removed(self) -> bool: ... def mark_removed(self) -> None: ... def attributes(self) -> list[str]: ... def add_attribute(self, arg: str, /) -> None: ... def remove_attribute(self, arg: str, /) -> None: ... def add_rid(self, arg: str, /) -> None: ... def ext_ids(self) -> list[int]: ... def add_ext_map(self, arg: Description.Entry.ExtMap, /) -> None: ... def remove_ext_map(self, arg: int, /) -> None: ... def __str__(self) -> str: ... class Application(Description.Entry): @overload def __init__(self, mid: str = 'data') -> None: ... @overload def __init__(self, mline: str, mid: str) -> None: ... def reciprocate(self) -> Description.Application: ... def set_sctp_port(self, arg: int, /) -> None: ... def hint_sctp_port(self, arg: int, /) -> None: ... def set_max_message_size(self, arg: int, /) -> None: ... def sctp_port(self) -> int | None: ... def max_message_size(self) -> int | None: ... def parse_sdp_line(self, arg: str, /) -> None: ... class Media(Description.Entry): @overload def __init__(self, mline: str, mid: str, direction: Description.Direction = Description.Direction.SendOnly) -> None: ... @overload def __init__(self, sdp: str) -> None: ... def description(self) -> str: ... def reciprocate(self) -> Description.Media: ... def add_ssrc(self, ssrc: int, name: str | None, msid: str | None = None, track_id: str | None = None) -> None: ... def remove_ssrc(self, arg: int, /) -> None: ... def replace_ssrc(self, arg0: int, arg1: int, arg2: str | None, arg3: str | None, arg4: str | None) -> None: ... def has_ssrc(self, arg: int, /) -> bool: ... def clear_ssrcs(self) -> None: ... def get_ssrcs(self) -> list[int]: ... def get_cname_for_ssrc(self, arg: int, /) -> str | None: ... def bitrate(self) -> int: ... def set_bitrate(self, arg: int, /) -> None: ... def parse_sdp_line(self, arg: str, /) -> None: ... def has_payload_type(self, arg: int, /) -> bool: ... def payload_types(self) -> list[int]: ... def rtp_map(self, payload_type: int) -> Description.RtpMap: ... def add_rtp_map(self, map: Description.RtpMap) -> None: ... def remove_rtp_map(self, payload_type: int) -> None: ... def remove_format(self, format: str) -> None: ... def add_rtx_codec(self, payload_type: int, orig_payload_type: int, clock_rate: int) -> None: ... def as_audio(self) -> Description.Audio: ... def as_video(self) -> Description.Video: ... class RtpMap: @overload def __init__(self, payload_type: int) -> None: ... @overload def __init__(self, description: str) -> None: ... def set_description(self, arg: str, /) -> None: ... @staticmethod def parse_payload_type(arg: str, /) -> int: ... def add_feedback(self, arg: str, /) -> None: ... def remove_feedback(self, arg: str, /) -> None: ... def add_parameter(self, arg: str, /) -> None: ... def remove_parameter(self, arg: str, /) -> None: ... @property def payload_type(self) -> int: ... @payload_type.setter def payload_type(self, arg: int, /) -> None: ... @property def format(self) -> str: ... @format.setter def format(self, arg: str, /) -> None: ... @property def clock_rate(self) -> int: ... @clock_rate.setter def clock_rate(self, arg: int, /) -> None: ... @property def enc_params(self) -> str: ... @enc_params.setter def enc_params(self, arg: str, /) -> None: ... @property def rtcp_fbs(self) -> list[str]: ... @rtcp_fbs.setter def rtcp_fbs(self, arg: Sequence[str], /) -> None: ... @property def fmtps(self) -> list[str]: ... @fmtps.setter def fmtps(self, arg: Sequence[str], /) -> None: ... class Audio(Description.Media): def __init__(self, mid: str = 'audio', direction: Description.Direction = Description.Direction.SendOnly) -> None: ... def add_audio_codec(self, payload_type: int, codec: str, profile: str | None = None) -> None: ... def add_opus_codec(self, payload_type: int, profile: str | None = ...) -> None: ... def add_pcmu_codec(self, payload_type: int, profile: str | None = None) -> None: ... def add_pcma_codec(self, payload_type: int, profile: str | None = None) -> None: ... def add_aac_codec(self, payload_type: int, profile: str | None = None) -> None: ... def add_g722_codec(self, payload_type: int, profile: str | None = None) -> None: ... class Video(Description.Media): def __init__(self, mid: str = 'video', direction: Description.Direction = Description.Direction.SendOnly) -> None: ... def add_video_codec(self, payload_type: int, codec: str, profile: str | None = None) -> None: ... def add_h264_codec(self, payload_type: int, profile: str | None = ...) -> None: ... def add_h265_codec(self, payload_type: int, profile: str | None = None) -> None: ... def add_vp8_codec(self, payload_type: int, profile: str | None = None) -> None: ... def add_vp9_codec(self, payload_type: int, profile: str | None = None) -> None: ... def add_av1_codec(self, payload_type: int, profile: str | None = None) -> None: ... def type(self) -> Description.Type: ... def type_string(self) -> str: ... def role(self) -> Description.Role: ... def bundle_mid(self) -> str: ... def ice_options(self) -> list[str]: ... def ice_ufrag(self) -> str | None: ... def ice_pwd(self) -> str | None: ... def fingerprint(self) -> CertificateFingerprint | None: ... def hint_type(self, arg: Description.Type, /) -> None: ... def add_ice_option(self, arg: str, /) -> None: ... def remove_ice_option(self, arg: str, /) -> None: ... def set_ice_attribute(self, ufrag: str, pwd: str) -> None: ... def set_fingerprint(self, arg: CertificateFingerprint, /) -> None: ... def __str__(self) -> str: ... def has_application(self) -> bool: ... def has_audio_or_video(self) -> bool: ... def has_mid(self, mid: str) -> bool: ... @overload def add_media(self, media: Description.Media) -> int: ... @overload def add_media(self, application: Description.Application) -> int: ... def add_application(self, mid: str = 'data') -> int: ... def add_video(self, mid: str = 'video', dir: Description.Direction = Description.Direction.SendOnly) -> int: ... def add_audio(self, mid: str = 'audio', dir: Description.Direction = Description.Direction.SendOnly) -> int: ... def clear_media(self) -> None: ... def media(self, arg: int, /) -> object: ... def media_count(self) -> int: ... def application(self) -> Description.Application: ... class Candidate: @overload def __init__(self) -> None: ... @overload def __init__(self, arg: str, /) -> None: ... @overload def __init__(self, candidate: str, mid: str) -> None: ... class Family(enum.Enum): Unresolved = 0 Ipv4 = 1 Ipv6 = 2 class Type(enum.Enum): Unknown = 0 Host = 1 ServerReflexive = 2 PeerReflexive = 3 Relayed = 4 class TransportType(enum.Enum): Unknown = 0 Udp = 1 TcpActive = 2 TcpPassive = 3 TcpSo = 4 TcpUnknown = 5 class ResolveMode(enum.Enum): Simple = 0 Lookup = 1 def hint_mid(self, arg: str, /) -> None: ... @overload def change_address(self, arg: str, /) -> None: ... @overload def change_address(self, arg0: str, arg1: int, /) -> None: ... @overload def change_address(self, arg0: str, arg1: str, /) -> None: ... def resolve(self, mode: Candidate.ResolveMode = Candidate.ResolveMode.Simple) -> bool: ... def type(self) -> Candidate.Type: ... def transport_type(self) -> Candidate.TransportType: ... def priority(self) -> int: ... def candidate(self) -> str: ... def mid(self) -> str: ... def is_resolved(self) -> bool: ... def family(self) -> Candidate.Family: ... def address(self) -> str | None: ... def port(self) -> int | None: ... def __eq__(self, arg: object, /) -> bool: ... def __ne__(self, arg: object, /) -> bool: ... def __str__(self) -> str: ... class Reliability: def __init__(self) -> None: ... @property def unordered(self) -> bool: ... @unordered.setter def unordered(self, arg: bool, /) -> None: ... @property def max_packet_lifetime(self) -> datetime.timedelta | None: ... @max_packet_lifetime.setter def max_packet_lifetime(self, arg: datetime.timedelta | float | None) -> None: ... @property def max_retransmits(self) -> int | None: ... @max_retransmits.setter def max_retransmits(self, arg: int | None) -> None: ... class FrameInfo: @overload def __init__(self, timestamp: int) -> None: ... @overload def __init__(self, timestamp_seconds: datetime.timedelta | float) -> None: ... @property def timestamp(self) -> int: ... @timestamp.setter def timestamp(self, arg: int, /) -> None: ... @property def payload_type(self) -> int: ... @payload_type.setter def payload_type(self, arg: int, /) -> None: ... @property def timestamp_seconds(self) -> datetime.timedelta | None: ... @timestamp_seconds.setter def timestamp_seconds(self, arg: datetime.timedelta | float | None) -> None: ... class Message: def __init__(self, size: int, type: Message.Type = Message.Type.Binary) -> None: ... class Type(enum.Enum): Binary = 0 String = 1 Control = 2 Reset = 3 @property def type(self) -> Message.Type: ... @type.setter def type(self, arg: Message.Type, /) -> None: ... @property def stream(self) -> int: ... @stream.setter def stream(self, arg: int, /) -> None: ... @property def dscp(self) -> int: ... @dscp.setter def dscp(self, arg: int, /) -> None: ... @property def reliability(self) -> Reliability: ... @reliability.setter def reliability(self, arg: Reliability, /) -> None: ... @property def frame_info(self) -> FrameInfo: ... @frame_info.setter def frame_info(self, arg: FrameInfo, /) -> None: ... def to_bytes(self) -> bytes: ... def to_str(self) -> str: ... def __len__(self) -> int: ... def __getitem__(self, arg: int, /) -> int: ... def __setitem__(self, arg0: int, arg1: int, /) -> None: ... def make_message(size: int, type: Message.Type = Message.Type.Binary, stream: int = 0, reliability: Reliability | None = None) -> Message: ... def make_message_from_data(data: bytes, type: Message.Type = Message.Type.Binary, stream: int = 0, reliability: Reliability | None = None) -> Message: ... def make_message_with_frame_info(data: bytes, frame_info: FrameInfo) -> Message: ... def make_message_from_variant(data: bytes | str) -> Message: ... def message_size(message: Message) -> int: ... def to_variant(message: Message) -> object: ... class NalUnitHeader: def __init__(self) -> None: ... def forbidden_bit(self) -> bool: ... def nri(self) -> int: ... def idc(self) -> int: ... def unit_type(self) -> int: ... def set_forbidden_bit(self, arg: bool, /) -> None: ... def set_nri(self, arg: int, /) -> None: ... def set_unit_type(self, arg: int, /) -> None: ... class NalUnitFragmentHeader: def __init__(self) -> None: ... def is_start(self) -> bool: ... def reserved_bit6(self) -> bool: ... def is_end(self) -> bool: ... def unit_type(self) -> int: ... def set_start(self, arg: bool, /) -> None: ... def set_end(self, arg: bool, /) -> None: ... def set_reserved_bit6(self, arg: bool, /) -> None: ... def set_unit_type(self, arg: int, /) -> None: ... class NalUnitStartSequenceMatch(enum.Enum): NoMatch = 0 FirstZero = 1 SecondZero = 2 ThirdZero = 3 ShortMatch = 4 LongMatch = 5 class NalUnit: @overload def __init__(self) -> None: ... @overload def __init__(self, size: int, including_header: bool = True, type: NalUnit.Type = NalUnit.Type.H264) -> None: ... @overload def __init__(self, arg: bytes, /) -> None: ... class Type(enum.Enum): H264 = 0 H265 = 1 class Separator(enum.Enum): Length = 0 LongStartSequence = 1 ShortStartSequence = 2 StartSequence = 3 def forbidden_bit(self) -> bool: ... def nri(self) -> int: ... def unit_type(self) -> int: ... def payload(self) -> bytes: ... def set_forbidden_bit(self, arg: bool, /) -> None: ... def set_nri(self, arg: int, /) -> None: ... def set_unit_type(self, arg: int, /) -> None: ... def set_payload(self, arg: bytes, /) -> None: ... @staticmethod def start_sequence_match_succ(match: NalUnitStartSequenceMatch, _byte: int, separator: NalUnit.Separator) -> NalUnitStartSequenceMatch: ... class NalUnitFragmentA(NalUnit): def __init__(self, type: NalUnitFragmentA.FragmentType, forbidden_bit: bool, nri: int, unit_type: int, data: bytes) -> None: ... class FragmentType(enum.Enum): Start = 0 Middle = 1 End = 2 def unit_type(self) -> int: ... def payload(self) -> bytes: ... def type(self) -> NalUnitFragmentA.FragmentType: ... def set_unit_type(self, arg: int, /) -> None: ... def set_payload(self, arg: bytes, /) -> None: ... def set_fragment_type(self, arg: NalUnitFragmentA.FragmentType, /) -> None: ... class H265NalUnitHeader: def __init__(self) -> None: ... def forbidden_bit(self) -> bool: ... def unit_type(self) -> int: ... def nuh_layer_id(self) -> int: ... def nuh_temp_id_plus1(self) -> int: ... def set_forbidden_bit(self, arg: bool, /) -> None: ... def set_unit_type(self, arg: int, /) -> None: ... def set_nuh_layer_id(self, arg: int, /) -> None: ... def set_nuh_temp_id_plus1(self, arg: int, /) -> None: ... class H265NalUnitFragmentHeader: def __init__(self) -> None: ... def is_start(self) -> bool: ... def is_end(self) -> bool: ... def unit_type(self) -> int: ... def set_start(self, arg: bool, /) -> None: ... def set_end(self, arg: bool, /) -> None: ... def set_unit_type(self, arg: int, /) -> None: ... class H265NalUnit(NalUnit): @overload def __init__(self) -> None: ... @overload def __init__(self, size: int, including_header: bool = True) -> None: ... @overload def __init__(self, data: bytes) -> None: ... def forbidden_bit(self) -> bool: ... def unit_type(self) -> int: ... def nuh_layer_id(self) -> int: ... def nuh_temp_id_plus1(self) -> int: ... def payload(self) -> bytes: ... def set_forbidden_bit(self, arg: bool, /) -> None: ... def set_unit_type(self, arg: int, /) -> None: ... def set_nuh_layer_id(self, arg: int, /) -> None: ... def set_nuh_temp_id_plus1(self, arg: int, /) -> None: ... def set_payload(self, arg: bytes, /) -> None: ... class H265NalUnitFragment(H265NalUnit): def __init__(self, type: H265NalUnitFragment.FragmentType, forbidden_bit: bool, nuh_layer_id: int, nuh_temp_id_plus1: int, unit_type: int, data: bytes) -> None: ... class FragmentType(enum.Enum): Start = 0 Middle = 1 End = 2 def unit_type(self) -> int: ... def payload(self) -> bytes: ... def type(self) -> H265NalUnitFragment.FragmentType: ... def set_unit_type(self, arg: int, /) -> None: ... def set_payload(self, arg: bytes, /) -> None: ... def set_fragment_type(self, arg: H265NalUnitFragment.FragmentType, /) -> None: ... class MediaHandler: def __init__(self) -> None: ... def media(self, desc: Description.Media) -> None: ... def incoming(self, messages: Sequence[Message], send: Callable[[Message], None]) -> None: ... def outgoing(self, messages: Sequence[Message], send: Callable[[Message], None]) -> None: ... def request_keyframe(self, send: Callable[[Message], None]) -> bool: ... def request_bitrate(self, bitrate: int, send: Callable[[Message], None]) -> bool: ... def add_to_chain(self, handler: MediaHandler) -> None: ... def set_next(self, next: MediaHandler) -> None: ... def next(self) -> MediaHandler: ... def last(self) -> MediaHandler: ... def media_chain(self, desc: Description.Media) -> None: ... def incoming_chain(self, messages: Sequence[Message], send: Callable[[Message], None]) -> None: ... def outgoing_chain(self, messages: Sequence[Message], send: Callable[[Message], None]) -> None: ... class PyMediaHandler(MediaHandler): def __init__(self) -> None: ... class DecodeTargetIndication(enum.Enum): NotPresent = 0 Discardable = 1 Switch = 2 Required = 3 class RenderResolution: def __init__(self) -> None: ... @property def width(self) -> int: ... @width.setter def width(self, arg: int, /) -> None: ... @property def height(self) -> int: ... @height.setter def height(self, arg: int, /) -> None: ... class FrameDependencyTemplate: def __init__(self) -> None: ... @property def spatial_id(self) -> int: ... @spatial_id.setter def spatial_id(self, arg: int, /) -> None: ... @property def temporal_id(self) -> int: ... @temporal_id.setter def temporal_id(self, arg: int, /) -> None: ... @property def decode_target_indications(self) -> list[DecodeTargetIndication]: ... @decode_target_indications.setter def decode_target_indications(self, arg: Sequence[DecodeTargetIndication], /) -> None: ... @property def frame_diffs(self) -> list[int]: ... @frame_diffs.setter def frame_diffs(self, arg: Sequence[int], /) -> None: ... @property def chain_diffs(self) -> list[int]: ... @chain_diffs.setter def chain_diffs(self, arg: Sequence[int], /) -> None: ... class FrameDependencyStructure: def __init__(self) -> None: ... @property def template_id_offset(self) -> int: ... @template_id_offset.setter def template_id_offset(self, arg: int, /) -> None: ... @property def decode_target_count(self) -> int: ... @decode_target_count.setter def decode_target_count(self, arg: int, /) -> None: ... @property def chain_count(self) -> int: ... @chain_count.setter def chain_count(self, arg: int, /) -> None: ... @property def decode_target_protected_by(self) -> list[int]: ... @decode_target_protected_by.setter def decode_target_protected_by(self, arg: Sequence[int], /) -> None: ... @property def resolutions(self) -> list[RenderResolution]: ... @resolutions.setter def resolutions(self, arg: Sequence[RenderResolution], /) -> None: ... @property def templates(self) -> list[FrameDependencyTemplate]: ... @templates.setter def templates(self, arg: Sequence[FrameDependencyTemplate], /) -> None: ... class DependencyDescriptor: def __init__(self) -> None: ... @property def start_of_frame(self) -> bool: ... @start_of_frame.setter def start_of_frame(self, arg: bool, /) -> None: ... @property def end_of_frame(self) -> bool: ... @end_of_frame.setter def end_of_frame(self, arg: bool, /) -> None: ... @property def frame_number(self) -> int: ... @frame_number.setter def frame_number(self, arg: int, /) -> None: ... @property def dependency_template(self) -> FrameDependencyTemplate: ... @dependency_template.setter def dependency_template(self, arg: FrameDependencyTemplate, /) -> None: ... @property def resolution(self) -> RenderResolution | None: ... @resolution.setter def resolution(self, arg: RenderResolution | None) -> None: ... @property def active_decode_targets_bitmask(self) -> int | None: ... @active_decode_targets_bitmask.setter def active_decode_targets_bitmask(self, arg: int | None) -> None: ... @property def structure_attached(self) -> bool: ... @structure_attached.setter def structure_attached(self, arg: bool, /) -> None: ... class DependencyDescriptorContext: def __init__(self) -> None: ... @property def descriptor(self) -> DependencyDescriptor: ... @descriptor.setter def descriptor(self, arg: DependencyDescriptor, /) -> None: ... @property def structure(self) -> FrameDependencyStructure: ... @structure.setter def structure(self, arg: FrameDependencyStructure, /) -> None: ... class DependencyDescriptorWriter: def __init__(self, context: DependencyDescriptorContext) -> None: ... def get_size_bits(self) -> int: ... def get_size(self) -> int: ... def write_to(self) -> bytes: ... class RtpPacketizationConfig: def __init__(self, ssrc: int, cname: str, payload_type: int, clock_rate: int, video_orientation_id: int = 0) -> None: ... @property def ssrc(self) -> int: ... @ssrc.setter def ssrc(self, arg: int, /) -> None: ... @property def cname(self) -> str: ... @cname.setter def cname(self, arg: str, /) -> None: ... @property def payload_type(self) -> int: ... @payload_type.setter def payload_type(self, arg: int, /) -> None: ... @property def clock_rate(self) -> int: ... @clock_rate.setter def clock_rate(self, arg: int, /) -> None: ... @property def video_orientation_id(self) -> int: ... @video_orientation_id.setter def video_orientation_id(self, arg: int, /) -> None: ... @property def sequence_number(self) -> int: ... @sequence_number.setter def sequence_number(self, arg: int, /) -> None: ... @property def timestamp(self) -> int: ... @timestamp.setter def timestamp(self, arg: int, /) -> None: ... @property def start_timestamp(self) -> int: ... @start_timestamp.setter def start_timestamp(self, arg: int, /) -> None: ... @property def video_orientation(self) -> int: ... @video_orientation.setter def video_orientation(self, arg: int, /) -> None: ... @property def mid_id(self) -> int: ... @mid_id.setter def mid_id(self, arg: int, /) -> None: ... @property def mid(self) -> str | None: ... @mid.setter def mid(self, arg: str | None) -> None: ... @property def rid_id(self) -> int: ... @rid_id.setter def rid_id(self, arg: int, /) -> None: ... @property def rid(self) -> str | None: ... @rid.setter def rid(self, arg: str | None) -> None: ... @property def dependency_descriptor_id(self) -> int: ... @dependency_descriptor_id.setter def dependency_descriptor_id(self, arg: int, /) -> None: ... @property def dependency_descriptor_context(self) -> DependencyDescriptorContext | None: ... @dependency_descriptor_context.setter def dependency_descriptor_context(self, arg: DependencyDescriptorContext | None) -> None: ... @property def playout_delay_id(self) -> int: ... @playout_delay_id.setter def playout_delay_id(self, arg: int, /) -> None: ... @property def playout_delay_min(self) -> int: ... @playout_delay_min.setter def playout_delay_min(self, arg: int, /) -> None: ... @property def playout_delay_max(self) -> int: ... @playout_delay_max.setter def playout_delay_max(self, arg: int, /) -> None: ... @property def color_space_id(self) -> int: ... @color_space_id.setter def color_space_id(self, arg: int, /) -> None: ... @property def color_chroma_siting_horz(self) -> int: ... @color_chroma_siting_horz.setter def color_chroma_siting_horz(self, arg: int, /) -> None: ... @property def color_chroma_siting_vert(self) -> int: ... @color_chroma_siting_vert.setter def color_chroma_siting_vert(self, arg: int, /) -> None: ... @property def color_range(self) -> int: ... @color_range.setter def color_range(self, arg: int, /) -> None: ... @property def color_primaries(self) -> int: ... @color_primaries.setter def color_primaries(self, arg: int, /) -> None: ... @property def color_transfer(self) -> int: ... @color_transfer.setter def color_transfer(self, arg: int, /) -> None: ... @property def color_matrix(self) -> int: ... @color_matrix.setter def color_matrix(self, arg: int, /) -> None: ... @staticmethod def get_seconds_from_timestamp(timestamp: int, clock_rate: int) -> float: ... def timestamp_to_seconds(self, timestamp: int) -> float: ... @staticmethod def get_timestamp_from_seconds(seconds: float, clock_rate: int) -> int: ... def seconds_to_timestamp(self, seconds: float) -> int: ... class RtpPacketizer(MediaHandler): def __init__(self, rtp_config: RtpPacketizationConfig) -> None: ... def media(self, arg: Description.Media, /) -> None: ... def outgoing(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... @property def rtp_config(self) -> RtpPacketizationConfig: ... DEFAULT_MAX_FRAGMENT_SIZE: int = ... """(arg: object, /) -> int""" VIDEO_CLOCK_RATE: int = ... """(arg: object, /) -> int""" class OpusRtpPacketizer(RtpPacketizer): def __init__(self, rtp_config: RtpPacketizationConfig) -> None: ... DEFAULT_CLOCK_RATE: int = ... """(arg: object, /) -> int""" class PCMARtpPacketizer(RtpPacketizer): def __init__(self, rtp_config: RtpPacketizationConfig) -> None: ... DEFAULT_CLOCK_RATE: int = ... """(arg: object, /) -> int""" class AV1RtpPacketizer(RtpPacketizer): def __init__(self, packetization: AV1RtpPacketizer.Packetization, rtp_config: RtpPacketizationConfig, max_fragment_size: int = 1220) -> None: ... class Packetization(enum.Enum): Obu = 0 TemporalUnit = 1 def outgoing(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... CLOCK_RATE: int = ... """(arg: object, /) -> int""" DEFAULT_MAX_FRAGMENT_SIZE: int = ... """(arg: object, /) -> int""" class H264RtpPacketizer(RtpPacketizer): def __init__(self, separator: NalUnit.Separator, rtp_config: RtpPacketizationConfig, max_fragment_size: int = 1220) -> None: ... def outgoing(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... CLOCK_RATE: int = ... """(arg: object, /) -> int""" DEFAULT_MAX_FRAGMENT_SIZE: int = ... """(arg: object, /) -> int""" class H265RtpPacketizer(RtpPacketizer): def __init__(self, separator: NalUnit.Separator, rtp_config: RtpPacketizationConfig, max_fragment_size: int = 1220) -> None: ... def outgoing(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... CLOCK_RATE: int = ... """(arg: object, /) -> int""" DEFAULT_MAX_FRAGMENT_SIZE: int = ... """(arg: object, /) -> int""" class RtpDepacketizer(MediaHandler): @overload def __init__(self) -> None: ... @overload def __init__(self, clock_rate: int) -> None: ... def incoming(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... class OpusRtpDepacketizer(RtpDepacketizer): def __init__(self, clock_rate: int = 48000) -> None: ... DEFAULT_CLOCK_RATE: int = ... """(arg: object, /) -> int""" class PCMARtpDepacketizer(RtpDepacketizer): def __init__(self, clock_rate: int = 8000) -> None: ... DEFAULT_CLOCK_RATE: int = ... """(arg: object, /) -> int""" class H264RtpDepacketizer(RtpDepacketizer): def __init__(self, separator: NalUnit.Separator = NalUnit.Separator.StartSequence) -> None: ... class H265RtpDepacketizer(RtpDepacketizer): def __init__(self, separator: NalUnit.Separator = NalUnit.Separator.StartSequence) -> None: ... class PacingHandler(MediaHandler): def __init__(self, bits_per_second: float, send_interval: datetime.timedelta | float) -> None: ... def outgoing(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... class RembHandler(MediaHandler): def __init__(self, on_remb: Callable[[int], None]) -> None: ... def incoming(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... class PliHandler(MediaHandler): def __init__(self, on_pli: Callable[[], None]) -> None: ... def incoming(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... class RtcpNackResponder(MediaHandler): def __init__(self, max_size: int = 512) -> None: ... DEFAULT_MAX_SIZE: int = ... """(arg: object, /) -> int""" def incoming(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... def outgoing(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... class SyncTimestamps: @property def rtp_timestamp(self) -> int: ... @property def ntp_timestamp(self) -> int: ... class RtcpReceivingSession(MediaHandler): def __init__(self) -> None: ... def incoming(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... def request_keyframe(self, arg: Callable[[Message], None], /) -> bool: ... def request_bitrate(self, arg0: int, arg1: Callable[[Message], None], /) -> bool: ... def get_sync_timestamps(self) -> SyncTimestamps: ... class RtcpSrReporter(MediaHandler): def __init__(self, rtp_config: RtpPacketizationConfig) -> None: ... def last_reported_timestamp(self) -> int: ... def outgoing(self, arg0: Sequence[Message], arg1: Callable[[Message], None], /) -> None: ... @property def rtp_config(self) -> RtpPacketizationConfig: ... class Channel: def close(self) -> None: ... @overload def send(self, data: bytes | str) -> bool: ... @overload def send(self, data: bytes, size: int) -> bool: ... def is_open(self) -> bool: ... def is_closed(self) -> bool: ... def max_message_size(self) -> int: ... def buffered_amount(self) -> int: ... def on_open(self, arg: Callable[[], None], /) -> None: ... def on_closed(self, arg: Callable[[], None], /) -> None: ... def on_error(self, arg: Callable[[str], None], /) -> None: ... @overload def on_message(self, arg: Callable[[bytes | str], None], /) -> None: ... @overload def on_message(self, binary_callback: Callable[[bytes], None], string_callback: Callable[[str], None]) -> None: ... def on_buffered_amount_low(self, arg: Callable[[], None], /) -> None: ... def set_buffered_amount_low_threshold(self, arg: int, /) -> None: ... def reset_callbacks(self) -> None: ... def receive(self) -> bytes | str | None: ... def peek(self) -> bytes | str | None: ... def available_amount(self) -> int: ... def on_available(self, arg: Callable[[], None], /) -> None: ... class DataChannel(Channel): def is_open(self) -> bool: ... def is_closed(self) -> bool: ... def max_message_size(self) -> int: ... def close(self) -> None: ... @overload def send(self, data: bytes | str) -> bool: ... @overload def send(self, data: bytes, size: int) -> bool: ... def stream(self) -> int | None: ... def id(self) -> int | None: ... def label(self) -> str: ... def protocol(self) -> str: ... def reliability(self) -> Reliability: ... class Track(Channel): def is_open(self) -> bool: ... def is_closed(self) -> bool: ... def max_message_size(self) -> int: ... def close(self) -> None: ... @overload def send(self, data: bytes | str) -> bool: ... @overload def send(self, data: bytes, size: int) -> bool: ... @overload def send_frame(self, data: bytes, info: FrameInfo) -> None: ... @overload def send_frame(self, data: bytes, size: int, info: FrameInfo) -> None: ... def mid(self) -> str: ... def direction(self) -> Description.Direction: ... def description(self) -> Description.Media: ... def set_description(self, description: Description.Media) -> None: ... def on_frame(self, callback: Callable[[bytes, FrameInfo], None]) -> None: ... def request_keyframe(self) -> bool: ... def request_bitrate(self, bitrate: int) -> bool: ... def set_media_handler(self, handler: MediaHandler | None) -> None: ... def chain_media_handler(self, handler: MediaHandler) -> None: ... def get_media_handler(self) -> MediaHandler: ... class DataChannelInit: def __init__(self) -> None: ... @property def reliability(self) -> Reliability: ... @reliability.setter def reliability(self, arg: Reliability, /) -> None: ... @property def negotiated(self) -> bool: ... @negotiated.setter def negotiated(self, arg: bool, /) -> None: ... @property def id(self) -> int | None: ... @id.setter def id(self, arg: int | None) -> None: ... @property def protocol(self) -> str: ... @protocol.setter def protocol(self, arg: str, /) -> None: ... class LocalDescriptionInit: def __init__(self) -> None: ... @property def ice_ufrag(self) -> str | None: ... @ice_ufrag.setter def ice_ufrag(self, arg: str | None) -> None: ... @property def ice_pwd(self) -> str | None: ... @ice_pwd.setter def ice_pwd(self, arg: str | None) -> None: ... class PeerConnection: @overload def __init__(self) -> None: ... @overload def __init__(self, config: Configuration) -> None: ... class State(enum.Enum): New = 0 Connecting = 1 Connected = 2 Disconnected = 3 Failed = 4 Closed = 5 class IceState(enum.Enum): New = 0 Checking = 1 Connected = 2 Completed = 3 Failed = 4 Disconnected = 5 Closed = 6 class GatheringState(enum.Enum): New = 0 InProgress = 1 Complete = 2 class SignalingState(enum.Enum): Stable = 0 HaveLocalOffer = 1 HaveRemoteOffer = 2 HaveLocalPranswer = 3 HaveRemotePranswer = 4 def close(self) -> None: ... def __del__(self) -> None: ... def config(self) -> Configuration: ... def state(self) -> PeerConnection.State: ... def ice_state(self) -> PeerConnection.IceState: ... def gathering_state(self) -> PeerConnection.GatheringState: ... def signaling_state(self) -> PeerConnection.SignalingState: ... def negotiation_needed(self) -> bool: ... def has_media(self) -> bool: ... def local_description(self) -> Description | None: ... def remote_description(self) -> Description | None: ... def remote_max_message_size(self) -> int: ... def local_address(self) -> str | None: ... def remote_address(self) -> str | None: ... def max_data_channel_id(self) -> int: ... def get_selected_candidate_pair(self, arg0: Candidate, arg1: Candidate, /) -> bool: ... def set_local_description(self, type: Description.Type = Description.Type.Unspec, init: LocalDescriptionInit | None = None) -> None: ... def set_remote_description(self, arg: Description, /) -> None: ... def add_remote_candidate(self, arg: Candidate, /) -> None: ... def gather_local_candidates(self, additional_ice_servers: Sequence[IceServer] = []) -> None: ... def create_offer(self) -> Description: ... def create_answer(self) -> Description: ... def set_media_handler(self, handler: MediaHandler | None) -> None: ... def get_media_handler(self) -> MediaHandler: ... def create_data_channel(self, label: str, init: DataChannelInit | None = None) -> DataChannel: ... def on_data_channel(self, arg: Callable[[DataChannel], None], /) -> None: ... def add_track(self, arg: Description.Media, /) -> Track: ... def on_track(self, arg: Callable[[Track], None], /) -> None: ... def on_local_description(self, arg: Callable[[Description], None], /) -> None: ... def on_local_candidate(self, arg: Callable[[Candidate], None], /) -> None: ... def on_state_change(self, arg: Callable[[PeerConnection.State], None], /) -> None: ... def on_ice_state_change(self, arg: Callable[[PeerConnection.IceState], None], /) -> None: ... def on_gathering_state_change(self, arg: Callable[[PeerConnection.GatheringState], None], /) -> None: ... def on_signaling_state_change(self, arg: Callable[[PeerConnection.SignalingState], None], /) -> None: ... def reset_callbacks(self) -> None: ... def remote_fingerprint(self) -> CertificateFingerprint: ... def clear_stats(self) -> None: ... def bytes_sent(self) -> int: ... def bytes_received(self) -> int: ... def rtt(self) -> datetime.timedelta | None: ... class WebSocket(Channel): @overload def __init__(self) -> None: ... @overload def __init__(self, config: WebSocketConfiguration) -> None: ... class State(enum.Enum): Connecting = 0 Open = 1 Closing = 2 Closed = 3 def is_open(self) -> bool: ... def is_closed(self) -> bool: ... def max_message_size(self) -> int: ... def close(self) -> None: ... @overload def send(self, data: bytes | str) -> bool: ... @overload def send(self, data: bytes, size: int) -> bool: ... def ready_state(self) -> WebSocket.State: ... def open(self, url: str) -> None: ... def force_close(self) -> None: ... def remote_address(self) -> str | None: ... def path(self) -> str | None: ... class IceUdpMuxRequest: @property def local_ufrag(self) -> str: ... @property def remote_ufrag(self) -> str: ... @property def remote_address(self) -> str: ... @property def remote_port(self) -> int: ... class IceUdpMuxListener: def __init__(self, port: int, bind_address: str | None = None) -> None: ... def stop(self) -> None: ... def port(self) -> int: ... def on_unhandled_stun_request(self, callback: Callable[[IceUdpMuxRequest], None]) -> None: ... class WebSocketServer: @overload def __init__(self) -> None: ... @overload def __init__(self, config: WebSocketServerConfiguration) -> None: ... def stop(self) -> None: ... def port(self) -> int: ... def on_client(self, callback: Callable[[WebSocket], None]) -> None: ...