Ë
    ÖÉ�jf  ã                   ó”   — d dl Z d dlmZ ddlmZ ddlmZmZmZ ddl	m
Z
 ddlmZ ddlmZ  e j                  e«      Z G d	„ d
«      Zy)é    N)ÚOptionalé   )Úget_capabilities)ÚRTCRtpCodecCapabilityÚRTCRtpCodecParametersÚRTCRtpHeaderExtensionParameters)ÚRTCRtpReceiver)ÚRTCRtpSender)Ú
DIRECTIONSc            	       ó`  — e Zd ZdZ	 ddedededefd„Zede	e   fd„«       Z
edefd	„«       Zej                  dedd
fd„«       Zedefd„«       Zede	e   fd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zdee   dd
fd„Zdd„Zdedd
fd„Zdedd
fd„Zde	e   fd„Zdedd
fd„Zy
)ÚRTCRtpTransceiverz©
    The RTCRtpTransceiver interface describes a permanent pairing of an
    :class:`RTCRtpSender` and an :class:`RTCRtpReceiver`, along with some
    shared state.
    ÚkindÚreceiverÚsenderÚ	directionc                 óº   — d | _         || _        || _        d | _        d | _        || _        || _        d| _        d | _        g | _	        d| _
        g | _        g | _        y )NF)Ú$_RTCRtpTransceiver__currentDirectionÚ_RTCRtpTransceiver__directionÚ_RTCRtpTransceiver__kindÚ_RTCRtpTransceiver__midÚ_RTCRtpTransceiver__mline_indexÚ_RTCRtpTransceiver__receiverÚ_RTCRtpTransceiver__senderÚ_RTCRtpTransceiver__stoppedÚ_offerDirectionÚ_preferred_codecsÚ_bundledÚ_codecsÚ_headerExtensions)Úselfr   r   r   r   s        úY/home/uftp/webrtc-recorder/.venv/lib/python3.12/site-packages/aiortc/rtcrtptransceiver.pyÚ__init__zRTCRtpTransceiver.__init__   sg   € ð 26ˆÔØ$ˆÔØˆŒØ$(ˆŒ
Ø,0ˆÔØ"ˆŒØˆŒØˆŒà.2ˆÔØ>@ˆÔð ˆŒØ46ˆŒØHJˆÕó    Úreturnc                 ó   — | j                   S )zš
        The currently negotiated direction of the transceiver.

        One of `'sendrecv'`, `'sendonly'`, `'recvonly'`, `'inactive'` or `None`.
        )r   ©r    s    r!   ÚcurrentDirectionz"RTCRtpTransceiver.currentDirection0   s   € ð ×&Ñ&Ð&r#   c                 ó   — | j                   S )zÿ
        The preferred direction of the transceiver, which will be used in
        :meth:`RTCPeerConnection.createOffer` and
        :meth:`RTCPeerConnection.createAnswer`.

        One of `'sendrecv'`, `'sendonly'`, `'recvonly'` or `'inactive'`.
        )r   r&   s    r!   r   zRTCRtpTransceiver.direction9   s   € ð ×ÑÐr#   Nc                 ó&   — |t         v sJ ‚|| _        y ©N)r   r   ©r    r   s     r!   r   zRTCRtpTransceiver.directionD   s   € àœJÑ&Ð&Ð&Ø$ˆÕr#   c                 ó   — | j                   S r*   )r   r&   s    r!   r   zRTCRtpTransceiver.kindI   s   € à�{‰{Ðr#   c                 ó   — | j                   S r*   ©r   r&   s    r!   ÚmidzRTCRtpTransceiver.midM   s   € à�z‰zÐr#   c                 ó   — | j                   S )zi
        The :class:`RTCRtpReceiver` that handles receiving and decoding
        incoming media.
        )r   r&   s    r!   r   zRTCRtpTransceiver.receiverQ   s   € ð �‰Ðr#   c                 ó   — | j                   S )zq
        The :class:`RTCRtpSender` responsible for encoding and sending
        data to the remote peer.
        )r   r&   s    r!   r   zRTCRtpTransceiver.senderY   s   € ð �}‰}Ðr#   c                 ó   — | j                   S r*   )r   r&   s    r!   ÚstoppedzRTCRtpTransceiver.stoppeda   s   € à�~‰~Ðr#   Úcodecsc                 óÒ   — |sg | _         t        | j                  «      j                  }g }t	        |«      D ](  }||vrt        d«      ‚||vsŒ|j                  d|«       Œ* || _         y)aa  
        Override the default codec preferences.

        See :meth:`RTCRtpSender.getCapabilities` and
        :meth:`RTCRtpReceiver.getCapabilities` for the supported codecs.

        :param codecs: A list of :class:`RTCRtpCodecCapability`, in decreasing order
                        of preference. If empty, restores the default preferences.
        zCodec is not in capabilitiesr   N)r   r   r   r4   ÚreversedÚ
ValueErrorÚinsert)r    r4   ÚcapabilitiesÚuniqueÚcodecs        r!   ÚsetCodecPreferencesz%RTCRtpTransceiver.setCodecPreferencese   sp   € ñ Ø%'ˆDÔ"ä'¨¯	©	Ó2×9Ñ9ˆØ.0ˆÜ˜fÓ%ò 	(ˆEØ˜LÑ(Ü Ð!?Ó@Ð@Ø˜FÒ"Ø—‘˜a Õ'ð		(ð
 "(ˆÕr#   c              ƒ   óª   K  — | j                   j                  «       ƒ d{  –—†  | j                  j                  «       ƒ d{  –—†  d| _        y7 Œ.7 Œ­w)zC
        Permanently stops the :class:`RTCRtpTransceiver`.
        NT)r   Ústopr   r   r&   s    r!   r>   zRTCRtpTransceiver.stop{   sD   è ø€ ð �o‰o×"Ñ"Ó$×$Ð$Ø�m‰m× Ñ Ó"×"Ð"Øˆ�ð 	%øØ"ús!   ‚A A¡!AÁAÁAÁAc                 óR  — || _         |dk(  r#d| j                  _        d| j                  _        y |dk(  r#d| j                  _        d| j                  _        y |dk(  r#d| j                  _        d| j                  _        y |dk(  r#d| j                  _        d| j                  _        y y )NÚsendrecvTÚsendonlyFÚrecvonlyÚinactive)r   r   Ú_enabledr   r+   s     r!   Ú_setCurrentDirectionz&RTCRtpTransceiver._setCurrentDirectionƒ   s�   € Ø"+ˆÔà˜
Ò"Ø%)ˆD�M‰MÔ"Ø'+ˆD�O‰OÕ$Ø˜*Ò$Ø%)ˆD�M‰MÔ"Ø',ˆD�O‰OÕ$Ø˜*Ò$Ø%*ˆD�M‰MÔ"Ø'+ˆD�O‰OÕ$Ø˜*Ò$Ø%*ˆD�M‰MÔ"Ø',ˆD�O‰OÕ$ð %r#   r/   c                 ó   — || _         y r*   r.   )r    r/   s     r!   Ú_set_midzRTCRtpTransceiver._set_mid“   s	   € Øˆ�
r#   c                 ó   — | j                   S r*   ©r   r&   s    r!   Ú_get_mline_indexz"RTCRtpTransceiver._get_mline_index–   s   € Ø×!Ñ!Ð!r#   Úidxc                 ó   — || _         y r*   rI   )r    rK   s     r!   Ú_set_mline_indexz"RTCRtpTransceiver._set_mline_index™   s
   € Ø ˆÕr#   )r@   )r$   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr	   r
   r"   Úpropertyr   r'   r   Úsetterr   r/   r   r   Úboolr3   Úlistr   r<   r>   rE   rG   ÚintrJ   rM   © r#   r!   r   r      s�  „ ñð $ñKàðKð !ðKð ð	Kð
 óKð0 ð' (¨3¡-ò 'ó ð'ð ð ˜3ò  ó ð ð ×Ñð% 3ð %¨4ò %ó ð%ð ð�cò ó ðð ð�X˜c‘]ò ó ðð ð˜.ò ó ðð ð˜ò ó ðð ð˜ò ó ðð(¨$Ð/DÑ*Eð (È$ó (ó,ð-¨cð -°dó -ð ˜Cð  Dó ð" (¨3¡-ó "ð! Cð !¨Dô !r#   r   )ÚloggingÚtypingr   r4   r   Úrtcrtpparametersr   r   r   Úrtcrtpreceiverr	   Úrtcrtpsenderr
   Úsdpr   Ú	getLoggerrN   Úloggerr   rX   r#   r!   ú<module>ra      sA   ðÛ Ý å $÷ñ õ
 +Ý &Ý à	ˆ×	Ñ	˜8Ó	$€÷I!ò I!r#   