§
    ÜóÉjë  ã                   óä   — d dl Z d dlmc mZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ e j        e j         G d„ d¦  «        ¦   «         ¦   «         Ze j        d	efd
„¦   «         Z e¦   «         ZdS )é    N)ÚCodec)Ú	err_check)ÚPacket)ÚStream)ÚEAGAINc                   ó”   — e Zd ZdZ	 	 d
deez  ez  dz  dedz  fd„Zd„ Ze	j
        ddedz  fd„¦   «         Ze	j
        d	„ ¦   «         ZdS )ÚBitStreamFilterContextaa  
    Initializes a bitstream filter: a way to directly modify packet data.

    Wraps :ffmpeg:`AVBSFContext`

    :param in_stream: Defines the input codec for the bitfilter. A :class:`.Stream`
        copies the full input codec parameters, while a :class:`.Codec` or a codec-name
        ``str`` only pins the input codec, which is all a codec-specific filter (such as
        ``h264_mp4toannexb``) needs to initialize.
    :type in_stream: :class:`.Stream`, :class:`.Codec`, str, or None
    :param Stream out_stream: A stream whose codec is overwritten using the output parameters from the bitfilter.
    NÚ	in_streamÚ
out_streamc                 óT  — |}t           j        5  t          j        |t          j        | j        ¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «         t          |t          ¦  «        rut           j        5  t          j	        | j        j
        t          j        t          |¦  «        j        j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «         n^|�\t          |t          ¦  «        r|nt          |¦  «        }|j        j        | j        j
        _        |j        j        | j        j
        _        t           j        5  t          j        | j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «         |�Žt           j        5  t          j	        |j        j        | j        j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «         |j        �-t          j        |j        j        |j        j        ¦  «         d S d S d S ©N)ÚcythonÚnogilÚlibÚav_bsf_list_parse_strÚaddressÚptrr   Ú
isinstancer   Úavcodec_parameters_copyÚpar_inÚcastÚcodecparr   ÚidÚcodec_idÚtypeÚ
codec_typeÚav_bsf_initÚpar_outÚcodec_contextÚavcodec_parameters_to_context)ÚselfÚfilter_descriptionr
   r   Ú
filter_strÚresÚcodecs          úq/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib64/python3.11/site-packages/av/bitstream.pyÚ	__cinit__z BitStreamFilterContext.__cinit__   sì  € ð %7ˆ
åŒ\ð 	Rð 	RÝÔ+¨J½¼ÀtÄxÑ8PÔ8PÑQÔQˆCð	Rð 	Rð 	Rñ 	Rô 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Røøøð 	Rð 	Rð 	Rð 	Rå�#‰Œˆå�i¥Ñ(Ô(ð 	8Ý”ð ð ÝÔ1Ø”H”O¥V¤[µ¸Ñ%CÔ%CÔ%GÔ%Pñô �ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �c‰NŒNˆNˆNØÐ"õ (¨	µ5Ñ9Ô9ÐO�	�	½uÀYÑ?OÔ?Oð ð (-¤y¤|ˆDŒHŒOÔ$Ø).¬¬ˆDŒHŒOÔ&åŒ\ð 	,ð 	,Ý”/ $¤(Ñ+Ô+ˆCð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,å�#‰ŒˆàÐ!Ý”ð ð ÝÔ1Ø”NÔ+¨T¬XÔ-=ñô �ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �c‰NŒNˆNð Ô'Ð3ÝÔ1ØÔ,Ô0°*´.Ô2Iñô ð ð ð ð "Ð!ð 4Ð3sH   �-AÁAÁAÂACÃCÃCÅE<Å<F ÆF Æ$*GÇGÇ!Gc                 ón   — | j         r-t          j        t          j        | j         ¦  «        ¦  «         d S d S r   )r   r   Úav_bsf_freer   r   ©r!   s    r&   Ú__dealloc__z"BitStreamFilterContext.__dealloc__G   s8   € ØŒ8ð 	6ÝŒO�FœN¨4¬8Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5ð	6ð 	6ó    Úpacketc                 óø  — t           j        5  t          j        | j        |�|j        nt           j        ¦  «        }ddd¦  «         n# 1 swxY w Y   t          |¦  «         g }	 t          ¦   «         }t           j        5  t          j        | j        |j        ¦  «        }ddd¦  «         n# 1 swxY w Y   |t           k    s|t          j
        k    r|S t          |¦  «         |r|S |                     |¦  «         Œ˜)z¥
        Processes a packet based on the filter_description set during initialization.
        Multiple packets may be created.

        :type: list[Packet]
        N)r   r   r   Úav_bsf_send_packetr   ÚNULLr   r   Úav_bsf_receive_packetr   ÚAVERROR_EOFÚappend)r!   r-   r$   ÚoutputÚ
new_packets        r&   ÚfilterzBitStreamFilterContext.filterK   sx  € õ Œ\ð 	ð 	ÝÔ(Ø”¨Ð(:˜&œ*˜*ÅÄñô ˆCð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	�#‰Œˆàˆð	&Ý™œˆJÝ”ð Jð JÝÔ/°´¸*¼.ÑIÔI�ðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð •v�gŠ~ˆ~ ­¬Ò!7Ð!7Ø�å�c‰NŒNˆNØð Ø�à�MŠM˜*Ñ%Ô%Ð%ð	&s#   �.AÁAÁAÁ> B*Â*B.Â1B.c                 ó8   — t          j        | j        ¦  «         dS )zÃ
        Reset the internal state of the filter.
        Should be called e.g. when seeking.
        Can be used to make the filter usable again after draining it with EOF marker packet.
        N)r   Úav_bsf_flushr   r*   s    r&   ÚflushzBitStreamFilterContext.flushk   s   € õ 	Ô˜œÑ"Ô"Ð"Ð"Ð"r,   )NNr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ústrr'   r+   r   Úccallr   r6   r9   © r,   r&   r	   r	   
   sÄ   € € € € € ðð ð  26Ø$(ð	+ð +ð ˜E‘> CÑ'¨$Ñ.ð+ð ˜T‘Mð	+ð +ð +ð +ðZ6ð 6ð 6ð „\ð&ð &˜V d™]ð &ð &ð &ñ „\ð&ð> „\ð#ð #ñ „\ð#ð #ð #r,   r	   Úreturnc                  óÆ   — t          ¦   «         } t          j        }	 t          j        t          j        |¦  «        ¦  «        }|r|                      |j        ¦  «         nnŒE| S r   )Úsetr   r0   r   Úav_bsf_iterater   ÚaddÚname)ÚnamesÚopaquer   s      r&   Úget_filter_namesrI   u   s_   € å‘”€Eå"œK€FðÝÔ ¥¤°Ñ!7Ô!7Ñ8Ô8ˆØð 	Ø�IŠI�c”hÑÔÐÐàðð €Lr,   )r   Úcython.cimports.libavÚcimportsÚlibavr   Úcython.cimports.av.codec.codecr   Úcython.cimports.av.errorr   Úcython.cimports.av.packetr   Úcython.cimports.av.streamr   Úcython.cimports.libc.errnor   ÚfinalÚcclassr	   ÚcfuncrC   rI   Úbitstream_filters_availabler@   r,   r&   ú<module>rV      s  ðØ €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø .Ð .Ð .Ð .Ð .Ð .Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø -Ð -Ð -Ð -Ð -Ð -ð „Ø„ðf#ð f#ð f#ð f#ð f#ñ f#ô f#ñ „ñ „ðf#ðR „ð˜#ð ð ð ñ „ðð /Ð.Ñ0Ô0Ð Ð Ð r,   