
    3j                        S SK Jr  S SKrS SKJr  S SKJr  \ " S S5      5       r\R                  " \
\
" 5       5      r\R                  S\R                  S\4S	 j5       r\R                   \R"                   " S
 S5      5       5       rg)    )	dataclassN)libav)PyBytes_FromStringAndSizec                   0    \ rS rSr% \\S'   \\S'   S rSrg)AudioChannel   namedescriptionc                 <    SU R                    SU R                   S3$ )Nz<av.AudioChannel 'z' (z)>)r	   r
   selfs    I/home/wildlama/miniconda3/lib/python3.13/site-packages/av/audio/layout.py__repr__AudioChannel.__repr__   s"    #DII;c$2B2B1C2FF     N)__name__
__module____qualname____firstlineno__str__annotations__r   __static_attributes__r   r   r   r   r      s    
IGr   r   c_layoutreturnc                 0    [        [        5      nXl        U$ )z$Get an AudioLayout from Cython land.)AudioLayout_cinit_bypass_sentinellayout)r   r   s     r   get_audio_layoutr       s     &&<=FMMr   c                   d    \ rS rSrS rS rS rS r\S 5       r	\S 5       r
\S\4S	 j5       rS
rg)r      c                 l    [         R                  " [        R                  " U R                  5      5        g N)libav_channel_layout_uninitcythonaddressr   r   s    r   __dealloc__AudioLayout.__dealloc__   s    $$V^^DKK%@Ar   c                 l   U[         L a  g [        U5      [        L a@  [        R                  " [
        R                  " W5      U5      nUS:w  a  [        SU 35      eOR[        U[        5      (       a&  [
        R                  " [        U5      R                  nO[        S[        U5       35      eX l        g )Nr   zInvalid layout: z5layout must be of type: string | av.AudioLayout, got )r   typer   r%   av_channel_layout_from_stringr'   r(   
ValueError
isinstancer   castr   	TypeError)r   r   r   rets       r   	__cinit__AudioLayout.__cinit__"   s    ++<333FNN84LfUCax #3F8!<== ,,{{;7>>HGV~V  r   c                 R    SU R                   R                   SU R                  < S3$ )Nz<av. >)	__class__r   r	   r   s    r   r   AudioLayout.__repr__3   s&    dnn--.a		}A>>r   c                    [        U[        5      (       d  g[        R                  " [        U5      R                  n[
        R                  " [        R                  " U R                  5      [        R                  " U5      5      S:H  $ )NFr   )r/   r   r'   r0   r   r%   av_channel_layout_comparer(   )r   otherc_others      r   __eq__AudioLayout.__eq__6   s`    %--'-{{;'F'M'M))t{{+V^^G-D 	
r   c                 .    U R                   R                  $ r$   )r   nb_channelsr   s    r   rA   AudioLayout.nb_channelsA   s    {{&&&r   c                    / n[        U R                  R                  5       GH  n[        R                  " W[
        R                  " U5      [        R                  " [
        R                  " U R                  5      U5      5      n[        R                  " W[
        R                  " U5      [        R                  " [
        R                  " U R                  5      U5      5      nUR                  [        [        X4S-
  5      R                  S5      [        XVS-
  5      R                  S5      5      5        GM     [        U5      $ )N   zutf-8)ranger   rA   r%   av_channel_namer'   sizeof$av_channel_layout_channel_from_indexr(   av_channel_descriptionappendr   r   decodetuple)r   resultsindexbufsizebuf2size2s          r   channelsAudioLayout.channelsE   s    
 4;;223E&&c"88NN4;;/D ..d#88NN4;;/E NN-c!8<CCGL-dAI>EEgN 4, W~r   r   c                     [         R                  " [        R                  " U R                  5      W[        R
                  " U5      5      nUS:  a  [        SU 35      eU$ )z'The canonical name of the audio layout.r   zFailed to get layout name: )r%   av_channel_layout_describer'   r(   r   rG   RuntimeError)r   layout_namer2   s      r   r	   AudioLayout.namec   sS     88NN4;;'fmmK6P
 7!<SEBCCr   )r   N)r   r   r   r   r)   r3   r   r>   propertyrA   rS   r   r	   r   r   r   r   r   r      sZ    B"?	
 ' '  : 	c 	 	r   r   )dataclassesr   r'   cython.cimportsr   r%   cython.cimports.cpython.bytesr   r   declareobjectr   cfuncAVChannelLayoutr   r    finalcclassr   r   r   <module>rd      s    !  ( C G G G  9  s22 {   O O  Or   