§
    ÜóÉjÕ  ã                   ó  — d dl 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 e¦   «         ¦  «        Ze j        defd„¦   «         Zd	d	d
d
dddddddœ
Ze j        e j         G d„ de¦  «        ¦   «         ¦   «         ZdS )é    N)Úget_audio_format)Úget_audio_layout©Ú
AudioPlane)Ú	err_check)Úcheck_ndarrayÚreturnc                  ó*   — t          t          ¦  «        S ©N)Ú
AudioFrameÚ_cinit_bypass_sentinel© ó    ús/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib64/python3.11/site-packages/av/audio/frame.pyÚalloc_audio_framer      s   € åÕ,Ñ-Ô-Ð-r   Úf8Úf4Úi2Úi4Úu1)
ÚdblÚdblpÚfltÚfltpÚs16Ús16pÚs32Ús32pÚu8Úu8pc            	       óV  — e Zd ZdZdd„Zej        dej        dej	        d	ej
        d
ej
        fd„¦   «         Zd„ Zej        d„ ¦   «         Zd„ Zedd„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Zej        d„ ¦   «         Zd„ ZdS )r   zA frame of audio.r   Ústereor   é   c                 óœ   — |t           u rd S t          |¦  «        }t          |¦  «        }|                      |j        |j        ||¦  «         d S r   )r   ÚAudioFormatÚAudioLayoutÚ_initÚ
sample_fmtÚlayout)ÚselfÚformatr)   ÚsamplesÚalignÚ	cy_formatÚ	cy_layouts          r   Ú	__cinit__zAudioFrame.__cinit__#   sQ   € ØÕ+Ð+Ð+ØˆFå!,¨VÑ!4Ô!4ˆ	Ý!,¨VÑ!4Ô!4ˆ	Ø�
Š
�9Ô'¨Ô)9¸7ÀEÑJÔJÐJÐJÐJr   r+   r)   Ú
nb_samplesr-   c                 óf  — || j         _        || j         _        || j         _        |                      ¦   «          | j        j        dk    �re|�rdt                               t          j
        | j        ¦  «        ¦  «         t          t                               t          j        | j        j        |||¦  «        ¦  «        | _        t          j        t          j        t$                   t                               | j        ¦  «        ¦  «        | _        | j        st)          d¦  «        ‚t          t                               | j         | j        j        t          j        t          j        | j         j        ¦  «        | j        t          j        t          j        | j        ¦  «        |¦  «        ¦  «         d S d S d S )Nr   z!cannot allocate AudioFrame buffer)Úptrr1   r+   Ú	ch_layoutÚ_init_user_attributesr)   Únb_channelsÚlibÚav_freepÚcythonÚaddressÚ_bufferr   Úav_samples_get_buffer_sizeÚNULLÚ_buffer_sizeÚcastÚpointerÚuint8_tÚ	av_mallocÚMemoryErrorÚavcodec_fill_audio_frameÚAVSampleFormatÚint)r*   r+   r)   r1   r-   s        r   r'   zAudioFrame._init+   sk  € ð )ˆŒÔØ ˆŒŒØ#ˆŒÔð 	×"Ò"Ñ$Ô$Ð$àŒ;Ô" aÒ'Ñ'¨JÑ'å�LŠL�œ¨¬Ñ5Ô5Ñ6Ô6Ð6õ !*Ý×.Ò.Ý”K ¤Ô!8¸*ÀfÈeñô ñ!ô !ˆDÔõ
 "œ;Ý”�wÔ'­¯ª°tÔ7HÑ)IÔ)Iñô ˆDŒLð ”<ð GÝ!Ð"EÑFÔFÐFõ Ý×,Ò,Ø”HØ”KÔ+Ý”K¥Ô 2°D´H´OÑDÔDØ”LÝ”K¥¤
¨DÔ,=Ñ>Ô>Øñô ñ	ô 	ð 	ð 	ð 	ð# (Ð'Ð'Ð'r   c                 óh   — t                                t          j        | j        ¦  «        ¦  «         d S r   )r7   r8   r9   r:   r;   ©r*   s    r   Ú__dealloc__zAudioFrame.__dealloc__V   s&   € Ý�Š•V”^ D¤LÑ1Ô1Ñ2Ô2Ð2Ð2Ð2r   c                 ó¸   — t          | j        j        ¦  «        | _        t	          t          j        t          j        | j        j	        ¦  «        ¦  «        | _	        d S r   )
r   r3   r4   r)   r   r9   r?   r7   rE   r+   rH   s    r   r5   z AudioFrame._init_user_attributesY   s<   € å& t¤xÔ'9Ñ:Ô:ˆŒÝ&¥v¤{µ3Ô3EÀtÄxÄÑ'WÔ'WÑXÔXˆŒˆˆr   c                 ó¨   — d| j         j        › d| j        › d| j        › d| j        › d| j        j        › d| j        j        › dt          | ¦  «        d›d�S )	Nz<av.z pts=z, z samples at zHz, z at 0xÚxú>)	Ú	__class__Ú__name__Úptsr,   Úrater)   Únamer+   ÚidrH   s    r   Ú__repr__zAudioFrame.__repr__^   sš   € ðc�4”>Ô*ð cð c°´ð cð c¸T¼\ð cð cØœ)ðcð cØ)-¬Ô)9ðcð cØ=A¼[Ô=Mðcð cÝUWÐX\ÑU]ÔU]Ðbðcð cð cð	
r   c                 ó  — ddl }t          |t          ¦  «        r|nt          |¦  «        }t          |t          ¦  «        r|nt          |¦  «        }|j        }	 |                     t          |         ¦  «        }n!# t          $ r t          d|› d�¦  «        ‚w xY w|j	        }t          | |d¦  «         |j        r@| j        d         |k    r!t          d|› d| j        d         › d�¦  «        ‚| j        d	         }n?| j        d         d	k    rt          d
| j        d         › d�¦  «        ‚| j        d	         |z  }t          |||¬¦  «        }	t          |	j        ¦  «        D ]$\  }
}|                     | |
dd…f         ¦  «         Œ%|	S )z7
        Construct a frame from a numpy array.
        r   Nz)Conversion from numpy array with format `z` is not yet supportedé   z+Expected planar `array.shape[0]` to equal `z` but got `ú`r#   z7Expected packed `array.shape[0]` to equal `1` but got `)r+   r)   r,   )ÚnumpyÚ
isinstancer%   r&   rR   ÚdtypeÚformat_dtypesÚKeyErrorÚ
ValueErrorr6   r   Ú	is_planarÚshaper   Ú	enumerateÚplanesÚupdate)Úarrayr+   r)   ÚnpÚ	py_formatÚ	py_layoutrZ   r6   r,   ÚframeÚiÚplanes               r   Úfrom_ndarrayzAudioFrame.from_ndarrayd   sÉ  € ð
 	ÐÐÐå(¨µÑ=Ô=ÐV�F�FÅ;ÈvÑCVÔCVˆ	Ý(¨µÑ=Ô=ÐV�F�FÅ;ÈvÑCVÔCVˆ	Ø”ˆð	Ø—H’H�]¨6Ô2Ñ3Ô3ˆEˆEøÝð 	ð 	ð 	ÝØZ¸FÐZÐZÐZñô ð ð	øøøð  Ô+ˆÝ�e˜U AÑ&Ô&Ð&ØÔð 	4ØŒ{˜1Œ~ Ò,Ð,Ý ØkÀ+ÐkÐkÐZ_ÔZeÐfgÔZhÐkÐkÐkñô ð ð ”k !”nˆGˆGàŒ{˜1Œ~ Ò"Ð"Ý Ø_ÈeÌkÐZ[ÌnÐ_Ð_Ð_ñô ð ð ”k !”n¨Ñ3ˆGå )°IÀwÐOÑOÔOˆÝ! %¤,Ñ/Ô/ð 	&ð 	&‰HˆAˆuØ�LŠL˜˜q ! ! !˜tœÑ%Ô%Ð%Ð%Øˆs   Á A: Á:Bc                 óª   ‡ — d}‰ j         j        |         r|dz  }‰ j         j        |         °t          ˆ fd„t          |¦  «        D ¦   «         ¦  «        S )zW
        A tuple of :class:`~av.audio.plane.AudioPlane`.

        :type: tuple
        r   r#   c                 ó0   •— g | ]}t          ‰|¦  «        ‘ŒS r   r   )Ú.0rh   r*   s     €r   ú
<listcomp>z%AudioFrame.planes.<locals>.<listcomp>—   s#   ø€ ÐFÐFÐF¨a•j  qÑ)Ô)ÐFÐFÐFr   )r3   Úextended_dataÚtupleÚrange)r*   Úplane_counts   ` r   ra   zAudioFrame.planesŒ   sg   ø€ ð #$ˆØŒhÔ$ [Ô1ð 	Ø˜1ÑˆKð ŒhÔ$ [Ô1ð 	õ ÐFÐFÐFÐFµ5¸Ñ3EÔ3EÐFÑFÔFÑGÔGÐGr   c                 ó   — | j         j        S )zL
        Number of audio samples (per channel).

        :type: int
        )r3   r1   rH   s    r   r,   zAudioFrame.samples™   s   € ð ŒxÔ"Ð"r   c                 ó   — | j         j        S )z[
        Sample rate of the audio data, in samples per second.

        :type: int
        ©r3   Úsample_raterH   s    r   rv   zAudioFrame.sample_rate¢   s   € ð ŒxÔ#Ð#r   c                 ó   — || j         _        d S r   ru   ©r*   Úvalues     r   rv   zAudioFrame.sample_rate«   ó   € à$ˆŒÔÐÐr   c                 ó   — | j         j        S )z%Another name for :attr:`sample_rate`.ru   rH   s    r   rQ   zAudioFrame.rate¯   s   € ð ŒxÔ#Ð#r   c                 ó   — || j         _        d S r   ru   rx   s     r   rQ   zAudioFrame.rate´   rz   r   c                 ó^  ‡‡‡— ddl Š	 ‰                     t          | j        j                 ¦  «        Šn+# t
          $ r t          d| j        j        ›d�¦  «        ‚w xY w| j        j        r| j        Šn| j        | j	        j
        z  Š‰                     ˆˆˆfd„| j        D ¦   «         ¦  «        S )zVGet a numpy array of this frame.

        .. note:: Numpy must be installed.

        r   NzConversion from z( format to numpy array is not supported.c                 ó@   •— g | ]}‰                      |‰‰¬ ¦  «        ‘ŒS ))rZ   Úcount)Ú
frombuffer)rm   rL   r   rZ   rd   s     €€€r   rn   z)AudioFrame.to_ndarray.<locals>.<listcomp>Í   s+   ø€ ÐMÐMÐM¸AˆR�]Š]˜1 E°ˆ]Ñ7Ô7ÐMÐMÐMr   )rX   rZ   r[   r+   rR   r\   r]   r^   r,   r)   r6   Úvstackra   )r*   r   rZ   rd   s    @@@r   Ú
to_ndarrayzAudioFrame.to_ndarray¸   sÓ   øøø€ ð 	ÐÐÐð	Ø—H’H�]¨4¬;Ô+;Ô<Ñ=Ô=ˆEˆEøÝð 	ð 	ð 	ÝØ_ 4¤;Ô#3Ð_Ð_Ð_ñô ð ð	øøøð
 Œ;Ô ð 	;Ø”LˆEˆEà”L 4¤;Ô#:Ñ:ˆEà�yŠyØMÐMÐMÐMÐMÐMÀÄÐMÑMÔMñ
ô 
ð 	
s	   ‰*4 ´(AN)r   r"   r   r#   )r   r"   )rO   Ú
__module__Ú__qualname__Ú__doc__r0   r9   Úcfuncr7   rE   ÚAVChannelLayoutÚuintr'   rI   r5   rT   Ústaticmethodrj   Úpropertyra   r,   rv   ÚsetterrQ   r‚   r   r   r   r   r      s   € € € € € ð ÐðKð Kð Kð Kð „\ð(àÔ"ð(ð Ô#ð(ð ”Kð	(ð
 Œ{ð(ð (ð (ñ „\ð(ðT3ð 3ð 3ð „\ðYð Yñ „\ðYð
ð 
ð 
ð ð%ð %ð %ñ „\ð%ðN ð
Hð 
Hñ „Xð
Hð ð#ð #ñ „Xð#ð ð$ð $ñ „Xð$ð Ôð%ð %ñ Ôð%ð ð$ð $ñ „Xð$ð 
„[ð%ð %ñ „[ð%ð
ð 
ð 
ð 
ð 
r   r   )r9   Úcython.cimports.av.audio.formatr   Úcython.cimports.av.audio.layoutr   Úcython.cimports.av.audio.planer   Úcython.cimports.av.errorr   Úcython.cimports.av.utilsr   ÚdeclareÚobjectr   r†   r   r   r[   ÚfinalÚcclassÚFramer   r   r   ú<module>r–      s/  ðØ €€€Ø <Ð <Ð <Ð <Ð <Ð <Ø <Ð <Ð <Ð <Ð <Ð <Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø .Ð .Ð .Ð .Ð .Ð .Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2à'˜œ¨°°±´Ñ9Ô9Ð ð „ð.˜:ð .ð .ð .ñ „ð.ð
 ØØØØØØØØ
Øðð €ð „Ø„ðn
ð n
ð n
ð n
ð n
�ñ n
ô n
ñ „ñ „ðn
ð n
ð n
r   