§
    ÜóÉjÛ'  ã            	       óê  — d dl mZmZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZ  G d„ de¦  «        Z G d	„ d
e¦  «        Z ej        e e¦   «         ¦  «        Zej        dedej        ej                 dedefd„¦   «         Zej         G d„ d¦  «        ¦   «         Zej        ej         G d„ de¦  «        ¦   «         ¦   «         Zej        ej         G d„ de¦  «        ¦   «         ¦   «         ZdS )é    )ÚIntEnumÚIntFlagN)Úlibav)Ú	err_check)Úwrap_index_entries)Úavdict_to_dictÚavrational_to_fractionÚdict_to_avdictÚto_avrationalc                   óZ   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdS )ÚDispositioné   é   é   é   é   é    é@   é€   é   i   i   i   i   i   i   i   i   i   i    N)Ú__name__Ú
__module__Ú__qualname__ÚdefaultÚdubÚoriginalÚcommentÚlyricsÚkaraokeÚforcedÚhearing_impairedÚvisual_impairedÚclean_effectsÚattached_picÚtimed_thumbnailsÚnon_diegeticÚcaptionsÚdescriptionsÚmetadataÚ	dependentÚstill_imageÚ
multilayer© ó    ún/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib64/python3.11/site-packages/av/stream.pyr   r      so   € € € € € Ø€GØ
€CØ€HØ€GØ€FØ€GØ€FØÐØ€OØ€MØ€LØÐØ€LØ€HØ€LØ€HØ€IØ€KØ€J€J€Jr.   r   c                   óp   — e Zd Zej        Zej        Zej        Z	ej
        Zej        Zej        Zej        ZdS )ÚDiscardN)r   r   r   ÚlibÚAVDISCARD_NONEÚnoneÚAVDISCARD_DEFAULTr   ÚAVDISCARD_NONREFÚnonrefÚAVDISCARD_BIDIRÚbidirÚAVDISCARD_NONINTRAÚnonintraÚAVDISCARD_NONKEYÚnonkeyÚAVDISCARD_ALLÚallr-   r.   r/   r1   r1   %   sF   € € € € € ØÔ€DØÔ#€GØÔ!€FØÔ€EØÔ%€HØÔ!€FØ
Ô
€C€C€Cr.   r1   Ú	containerÚc_streamÚcodec_contextÚreturnc                 ó"  — | j         j        |j                 |k    sJ ‚ddlm} ddlm} ddlm} |j	        j
        t          j        k    r|                     |t          ¦  «        }�n|j	        j
        t          j        k    r|                     |t          ¦  «        }nÛ|j	        j
        t          j        k    r|                     |t          ¦  «        }n¥|j	        j
        t          j        k    r&t$                               t$          t          ¦  «        }ne|j	        j
        t          j        k    r&t(                               t(          t          ¦  «        }n%t*                               t*          t          ¦  «        }|                     | ||¦  «         |S )z†Build an av.Stream for an existing AVStream.

    The AVStream MUST be fully constructed and ready for use before this is called.
    r   )ÚAudioStream)ÚSubtitleStream)ÚVideoStream)ÚptrÚstreamsÚindexÚav.audio.streamrE   Úav.subtitles.streamrF   Úav.video.streamrG   ÚcodecparÚ
codec_typer2   ÚAVMEDIA_TYPE_VIDEOÚ__new__Ú_cinit_bypass_sentinelÚAVMEDIA_TYPE_AUDIOÚAVMEDIA_TYPE_SUBTITLEÚAVMEDIA_TYPE_ATTACHMENTÚAttachmentStreamÚAVMEDIA_TYPE_DATAÚ
DataStreamÚStreamÚ_init)r@   rA   rB   rE   rF   rG   Ú	py_streams          r/   Úwrap_streamr\   2   sf  € ð Œ=Ô  ¤Ô0°HÒ<Ð<Ð<Ð<ð ,Ð+Ð+Ð+Ð+Ð+Ø2Ð2Ð2Ð2Ð2Ð2Ø+Ð+Ð+Ð+Ð+Ð+àÔÔ#¥sÔ'=Ò=Ð=Ø×'Ò'¨Õ5KÑLÔLˆ	‰	Ø	Ô	Ô	%­Ô)?Ò	?Ð	?Ø×'Ò'¨Õ5KÑLÔLˆ	ˆ	Ø	Ô	Ô	%­Ô)BÒ	BÐ	BØ"×*Ò*¨>Õ;QÑRÔRˆ	ˆ	Ø	Ô	Ô	%­Ô)DÒ	DÐ	DÝ$×,Ò,Õ-=Õ?UÑVÔVˆ	ˆ	Ø	Ô	Ô	%­Ô)>Ò	>Ð	>Ý×&Ò&¥zÕ3IÑJÔJˆ	ˆ	å—N’N¥6Õ+AÑBÔBˆ	à‡O‚O�I˜x¨Ñ7Ô7Ð7ØÐr.   c                   óø  — e Zd ZdZd„ Zej        dedej        e	j
                 defd„¦   «         Zej        e	j        fdej        fd„¦   «         Zd	„ Zd
„ Zej        d„ ¦   «         Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z dS )rY   a  
    A single stream of audio, video or subtitles within a :class:`.Container`.

    ::

        >>> fh = av.open(video_path)
        >>> stream = fh.streams.video[0]
        >>> stream
        <av.VideoStream #0 h264, yuv420p 1280x720 at 0x...>

    This encapsulates a :class:`.CodecContext`, located at :attr:`Stream.codec_context`.
    Attribute access is passed through to that context when attributes are missing
    on the stream itself. E.g. ``stream.options`` will be the options on the
    context.
    c                 ó6   — |t           u rd S t          d¦  «        ‚)Nz"cannot manually instantiate Stream)rR   ÚRuntimeError©ÚselfÚnames     r/   Ú	__cinit__zStream.__cinit__i   s"   € ØÕ)Ð)Ð)ØˆFÝÐ?Ñ@Ô@Ð@r.   r@   ÚstreamrB   c                 óò   — || _         || _        t          | j        ¦  «        | _        || _        | j        r|j        | j        _        t          |j        | j         j	        | j         j
        ¬¦  «        | _        d S ©N)ÚencodingÚerrors)r@   rH   r   Úindex_entriesrB   rJ   Ústream_indexr   r)   Úmetadata_encodingÚmetadata_errors)ra   r@   rd   rB   s       r/   rZ   zStream._initn   ss   € ð #ˆŒØˆŒÝ/°´Ñ9Ô9ˆÔà*ˆÔØÔð 	;Ø.4¬lˆDÔÔ+å&ØŒOØ”^Ô5Ø”>Ô1ð
ñ 
ô 
ˆŒˆˆr.   Úerrc                 ó6   — | j         €t          |¦  «         d S d S ©N)rB   r   )ra   rm   s     r/   Ú_assert_has_codec_contextz Stream._assert_has_codec_contextƒ   s$   € ð
 ÔÐ%Ý�c‰NŒNˆNˆNˆNð &Ð%r.   c                 ó”   — t          | dd ¦  «        }d| j        j        › d| j        › d| j        pd› d|pd› dt          | ¦  «        d	›d
�S )Nrb   ú<av.ú #ú z<notype>ú/ú	<nocodec>ú at 0xÚxú>)ÚgetattrÚ	__class__r   rJ   ÚtypeÚidr`   s     r/   Ú__repr__zStream.__repr__‹   s|   € Ý�t˜V TÑ*Ô*ˆð8�4”>Ô*ð 8ð 8¨d¬jð 8ð 8¸4¼9Ð;RÈ
ð 8ð 8ØÐ"�{ð8ð 8Ý*,¨T©(¬(Ð7ð8ð 8ð 8ð	
r.   c                 óZ  — |dk    r|                       |¦  «         d S |dk    r|| j        _        d S |dk    r t          |¦  «        j        | j        _        d S |dk    r.t          |t          j        | j        j	        ¦  «        ¦  «         d S | j
        �t          | j
        ||¦  «         d S d S )Nr}   ÚdispositionÚdiscardÚ	time_base)Ú_set_idrH   r€   r1   Úvaluer�   r   ÚcythonÚaddressr‚   rB   Úsetattr)ra   rb   r„   s      r/   Ú__setattr__zStream.__setattr__’   s¼   € Ø�4Š<ˆ<Ø�LŠL˜ÑÔÐØˆFØ�=Ò Ð Ø#(ˆDŒHÔ ØˆFØ�9ÒÐÝ& u™~œ~Ô3ˆDŒHÔØˆFØ�;ÒÐÝ˜%¥¤°´Ô0BÑ!CÔ!CÑDÔDÐDØˆFð ÔÐ)Ý�DÔ&¨¨eÑ4Ô4Ð4Ð4Ð4ð *Ð)r.   c                 ól  — t          t          j        | j        j        ¦  «        | j        | j        j        | j        j        ¬¦  «         | j        €d S | j        j	        j
        s| j        j        j	        | j        _	        t          t          j        | j        j        | j        j        ¦  «        ¦  «         d S rf   )r
   r…   r†   rH   r)   r@   rk   rl   rB   r‚   Únumr   r2   Úavcodec_parameters_from_contextrN   ©ra   s    r/   Ú_finalize_for_outputzStream._finalize_for_output¤   s²   € åÝŒN˜4œ8Ô,Ñ-Ô-ØŒMØ”^Ô5Ø”>Ô1ð		
ñ 	
ô 	
ð 	
ð ÔÐ%ØˆFàŒxÔ!Ô%ð 	BØ!%Ô!3Ô!7Ô!AˆDŒHÔõ 	ÝÔ/Ø”Ô! 4Ô#5Ô#9ñô ñ	
ô 	
ð 	
ð 	
ð 	
r.   c                 ó   — | j         j        S )zM
        The format-specific ID of this stream.

        :type: int

        ©rH   r}   rŒ   s    r/   r}   z	Stream.idº   s   € ð ŒxŒ{Ðr.   c                 ó>   — |€d| j         _        d S || j         _        d S )Nr   r�   )ra   r„   s     r/   rƒ   zStream._set_idÄ   s!   € àˆ=ØˆDŒHŒKˆKˆKàˆDŒHŒKˆKˆKr.   c                 ó,   — | j         r| j         j        S g S )zX
        List the available profiles for this stream.

        :type: list[str]
        )rB   ÚprofilesrŒ   s    r/   r’   zStream.profilesË   s    € ð Ôð 	ØÔ%Ô.Ð.àˆIr.   c                 ó,   — | j         r| j         j        S dS )zA
        The profile of this stream.

        :type: str
        N)rB   ÚprofilerŒ   s    r/   r”   zStream.profile×   s    € ð Ôð 	ØÔ%Ô-Ð-à�4r.   c                 ó   — | j         j        S )zZ
        The index of this stream in its :class:`.Container`.

        :type: int
        )rH   rJ   rŒ   s    r/   rJ   zStream.indexã   s   € ð ŒxŒ~Ðr.   c                 óX   — t          t          j        | j        j        ¦  «        ¦  «        S )zˆ
        The unit of time (in fractional seconds) in which timestamps are expressed.

        :type: fractions.Fraction | None

        )r	   r…   r†   rH   r‚   rŒ   s    r/   r‚   zStream.time_baseì   s!   € õ &¥f¤n°T´XÔ5GÑ&HÔ&HÑIÔIÐIr.   c                 óR   — | j         j        t          j        k    r| j         j        S dS )z�
        The presentation timestamp in :attr:`time_base` units of the first
        frame in this stream.

        :type: int | None
        N)rH   Ú
start_timer2   ÚAV_NOPTS_VALUErŒ   s    r/   r˜   zStream.start_timeö   s*   € ð Œ8Ô¥#Ô"4Ò4Ð4Ø”8Ô&Ð&ð 5Ð4r.   c                 óR   — | j         j        t          j        k    r| j         j        S dS )ze
        The duration of this stream in :attr:`time_base` units.

        :type: int | None

        N)rH   Údurationr2   r™   rŒ   s    r/   r›   zStream.duration  s*   € ð Œ8Ô¥Ô 2Ò2Ð2Ø”8Ô$Ð$ð 3Ð2r.   c                 ó   — | j         j        S )z{
        The number of frames this stream contains.

        Returns ``0`` if it is not known.

        :type: int
        )rH   Ú	nb_framesrŒ   s    r/   ÚframeszStream.frames  s   € ð ŒxÔ!Ð!r.   c                 ó6   — | j                              d¦  «        S )zH
        The language of the stream.

        :type: str | None
        Úlanguage©r)   ÚgetrŒ   s    r/   r    zStream.language  ó   € ð Œ}× Ò  Ñ,Ô,Ð,r.   c                 ó4   — t          | j        j        ¦  «        S ro   )r   rH   r€   rŒ   s    r/   r€   zStream.disposition   s   € å˜4œ8Ô/Ñ0Ô0Ð0r.   c                 ó4   — t          | j        j        ¦  «        S )aH  
        Controls which packets of this stream are discarded by the demuxer.

        Set this to e.g. :attr:`Discard.all` on streams you don't need so that
        :meth:`.Container.demux` and :meth:`.Container.seek` skip them, avoiding
        the cost of synchronizing streams you never read.

        :type: Discard
        )r1   rH   r�   rŒ   s    r/   r�   zStream.discard$  s   € õ �t”xÔ'Ñ(Ô(Ð(r.   c                 óp   — t          j        | j        j        j        ¦  «        }|t
          j        k    rdn|S )zu
        The type of the stream.

        :type: Literal["audio", "video", "subtitle", "data", "attachment"]
        Úunknown)r2   Úav_get_media_type_stringrH   rN   rO   r…   ÚNULL)ra   Ú
media_types     r/   r|   zStream.type1  s2   € õ Ô1°$´(Ô2CÔ2NÑOÔOˆ
Ø&­&¬+Ò5Ð5ˆyˆy¸:ÐEr.   N)!r   r   r   Ú__doc__rc   r…   ÚcfuncÚ	ContainerÚpointerr2   ÚAVStreamÚCodecContextrZ   ÚAVERROR_DECODER_NOT_FOUNDÚintrp   r~   rˆ   r�   Úpropertyr}   rƒ   r’   r”   rJ   r‚   r˜   r›   rž   r    r€   r�   r|   r-   r.   r/   rY   rY   W   sR  € € € € € ðð ð Að Að Að
 „\ð
àð
ð ”˜sœ|Ô,ð
ð $ð	
ð 
ð 
ñ „\ð
ð( „\à #Ô =ðð Ø”:ðð ð ñ „\ðð
ð 
ð 
ð5ð 5ð 5ð$ „\ð
ð 
ñ „\ð
ð* ðð ñ „Xðð „\ð ð  ñ „\ð ð ð	ð 	ñ „Xð	ð ð	ð 	ñ „Xð	ð ðð ñ „Xðð ðJð Jñ „XðJð ð'ð 'ñ „Xð'ð ð%ð %ñ „Xð%ð ð"ð "ñ „Xð"ð ð-ð -ñ „Xð-ð ð1ð 1ñ „Xð1ð ð
)ð 
)ñ „Xð
)ð ðFð Fñ „XðFð Fð Fr.   rY   c                   ó*   — e Zd Zd„ Zed„ ¦   «         ZdS )rX   c           
      óh   — d| j         j        › d| j        › d| j        pd› dt	          | ¦  «        d›d�	S )Nrr   rs   z data/rv   rw   rx   ry   )r{   r   rJ   rb   r}   rŒ   s    r/   r~   zDataStream.__repr__?  sZ   € ð=�4”>Ô*ð =ð =¨d¬jð =ð =ØŒyÐ'˜Kð=ð =Ý/1°$©x¬xÐ<ð=ð =ð =ð	
r.   c                 óz   — t          j        | j        j        j        ¦  «        }|t
          j        k    rd S |j        S ro   )r2   Úavcodec_descriptor_getrH   rN   Úcodec_idr…   r©   rb   )ra   Údescs     r/   rb   zDataStream.nameE  s;   € õ Ô& t¤xÔ'8Ô'AÑBÔBð 	ð •6”;ÒÐØ�4ØŒyÐr.   N)r   r   r   r~   r³   rb   r-   r.   r/   rX   rX   <  s>   € € € € € ð
ð 
ð 
ð ðð ñ „Xðð ð r.   rX   c                   óT   — e Zd ZdZed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )rV   zÀ
    An :class:`AttachmentStream` represents a stream of attachment data within a media container.
    Typically used to attach font files that are referenced in ASS/SSA Subtitle Streams.
    c                 ó6   — | j                              d¦  «        S )zV
        Returns the file name of the attachment.

        :rtype: str | None
        Úfilenamer¡   rŒ   s    r/   rb   zAttachmentStream.nameW  r£   r.   c                 ó6   — | j                              d¦  «        S )zV
        Returns the MIME type of the attachment.

        :rtype: str | None
        Úmimetyper¡   rŒ   s    r/   r¾   zAttachmentStream.mimetype`  r£   r.   c                 óì   — | j         j        j        }| j         j        j        }|t          j        k    s|dk    rdS t          |¦  «        }t          |¦  «        D ]}||         ||<   Œt          |¦  «        S )z+Return the raw attachment payload as bytes.r   r.   )	rH   rN   Ú	extradataÚextradata_sizer…   r©   Ú	bytearrayÚrangeÚbytes)ra   rÀ   ÚsizeÚpayloadÚis        r/   ÚdatazAttachmentStream.datai  ss   € ð %)¤HÔ$5Ô$?ˆ	Ø"&¤(Ô"3Ô"BˆØ�œÒ#Ð# t¨q¢y yØ�3å˜D‘/”/ˆÝ�t‘”ð 	&ð 	&ˆAØ" 1œˆG�A‰JˆJå�W‰~Œ~Ðr.   N)r   r   r   r«   r³   rb   r¾   rÈ   r-   r.   r/   rV   rV   O  so   € € € € € ðð ð
 ð-ð -ñ „Xð-ð ð-ð -ñ „Xð-ð ðð ñ „Xðð ð r.   rV   ) Úenumr   r   r…   Úcython.cimportsr   r2   Úcython.cimports.av.errorr   Úcython.cimports.av.indexr   Úcython.cimports.av.utilsr   r	   r
   r   r   r1   ÚdeclareÚobjectrR   r¬   r­   r®   r¯   r°   rY   r\   ÚcclassÚfinalrX   rV   r-   r.   r/   ú<module>rÒ      s1  ðØ !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à €€€Ø (Ð (Ð (Ð (Ð (Ð (Ø .Ð .Ð .Ð .Ð .Ð .Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð �'ñ ô ð ð,ð ð ð ð ˆgñ ô ð ð (˜œ¨°°±´Ñ9Ô9Ð ð „ð!Øð!àŒn˜Sœ\Ô*ð!ð  ð!ð ð	!ð !ð !ñ „ð!ðH „ðaFð aFð aFð aFð aFñ aFô aFñ „ðaFðH „Ø„ðð ð ð ð �ñ ô ñ „ñ „ðð" „Ø„ð$ð $ð $ð $ð $�vñ $ô $ñ „ñ „ð$ð $ð $r.   