
    m i                         U d dl Z d dlZe j        dk    rdndZeed<    e            Zej        de	j
        defd            Zej         G d	 d
                      ZdS )    Nlittlelebecontainer_format_postfixc_formatreturnc                 L    | dk     rdS t          t                    }| |_        |S )z2Get an AudioFormat without going through a string.r   N)AudioFormat_cinit_bypass_sentinel
sample_fmt)r   formats     O/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/av/audio/format.pyget_audio_formatr   	   s-     !||t%&<==F FM    c                       e Zd ZdZd Z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 )r
   zDescriptor of audio formats.c                     |t           u rd S t          |t                    r t          j        t          |          j        }nt                              |          }|dk     rt          d|          || _        d S )Nr   zNot a sample format: )	r   
isinstancer
   cythoncastr   libav_get_sample_fmt
ValueError)selfnamer   s      r   	__cinit__zAudioFormat.__cinit__   s{    )))F dK(( 	5[$77BJJ..t44J>>=T==>>>$r   c                     d| j          dS )Nz<av.AudioFormat >)r   r   s    r   __repr__zAudioFormat.__repr__(   s    .$)....r   c                 @    t                               | j                  S )zcCanonical name of the sample format.

        >>> AudioFormat('s16p').name
        's16p'

        )r   av_get_sample_fmt_namer   r   s    r   r   zAudioFormat.name+   s     ))$/:::r   c                 @    t                               | j                  S )zVNumber of bytes per sample.

        >>> AudioFormat('s16p').bytes
        2

        r   av_get_bytes_per_sampler   r   s    r   byteszAudioFormat.bytes5   s     **4?;;;r   c                 F    t                               | j                  dz  S )zUNumber of bits per sample.

        >>> AudioFormat('s16p').bits
        16

           r#   r   s    r   bitszAudioFormat.bits?   s     **4?;;q@@r   c                 Z    t          t                              | j                            S )zSIs this a planar format?

        Strictly opposite of :attr:`is_packed`.

        )boolr   av_sample_fmt_is_planarr   r   s    r   	is_planarzAudioFormat.is_planarI   s"     C//@@AAAr   c                 B    t                               | j                   S )zSIs this a packed format?

        Strictly opposite of :attr:`is_planar`.

        )r   r+   r   r   s    r   	is_packedzAudioFormat.is_packedR   s     ..t????r   c                 l    | j         r| S t          t                              | j                            S )zThe planar variant of this format.

        Is itself when planar:

        >>> fmt = AudioFormat('s16p')
        >>> fmt.planar is fmt
        True

        )r,   r   r   av_get_planar_sample_fmtr   r   s    r   planarzAudioFormat.planar[   1     > 	K < <T_ M MNNNr   c                 l    | j         r| S t          t                              | j                            S )zThe packed variant of this format.

        Is itself when packed:

        >>> fmt = AudioFormat('s16')
        >>> fmt.packed is fmt
        True

        )r.   r   r   av_get_packed_sample_fmtr   r   s    r   packedzAudioFormat.packedj   r2   r   c                 r   | j         rt          d          | j        t          j        k    rdS | j        t          j        k    r
dt          z   S | j        t          j        k    r
dt          z   S | j        t          j        k    r
dt          z   S | j        t          j	        k    r
dt          z   S t          d          )zThe name of a :class:`ContainerFormat` which directly accepts this data.

        :raises ValueError: when planar, since there are no such containers.

        zno planar container formatsu8s16s32f32f64zunknown layout)
r,   r   r   r   AV_SAMPLE_FMT_U8AV_SAMPLE_FMT_S16r   AV_SAMPLE_FMT_S32AV_SAMPLE_FMT_FLTAV_SAMPLE_FMT_DBLr   s    r   container_namezAudioFormat.container_namey   s     > 	<:;;;?c2224_ 555333_ 555333_ 555333_ 555333)***r   N)__name__
__module____qualname____doc__r   r   propertyr   r%   r(   r,   r.   r1   r5   rA    r   r   r
   r
      s       &&% % %/ / / ; ; X; < < X< A A XA B B XB @ @ X@ O O XO O O XO + + X+ + +r   r
   )sysr   	byteorderr   str__annotations__objectr   cfuncr   AVSampleFormatr
   r   cclassrG   r   r   <module>rP      s    




 (+(A(At # K K K  s1 k     x+ x+ x+ x+ x+ x+ x+ x+ x+ x+r   