
    \j              	          d dl mZ d dlZd dlmZ d dlmZ ej                  dej                  ej                     defd       Zej                  dej                  ej                     d	ed
edefd       Zej                  dej                  ej                  ej                        ded	ed
efd       Zej                  dej                  ej"                  ej$                        defd       Zej                  dedej                  ej$                     dej*                  fd       Zej                  dededej.                  dej*                  fd       Zy)    )FractionN)libav)	err_checksreturnc                 V    t        j                  t        |       j                  ||      S N)cythoncastbytesdecode)r   encodingerrorss      ;/root/.hermes/venv/lib/python3.12/site-packages/av/utils.py_decoder   	   s     ;;ua ''&99    inputr   r   c                     t         j                  }i }	 t        j                  | d|t        j                        }|t         j                  k(  r	 |S t        |j                  ||      |t        |j                  ||      <   l)N )r
   NULLlibav_dict_getAV_DICT_IGNORE_SUFFIXr   valuekey)r   r   r   elementoutputs        r   avdict_to_dictr      st     6<[[GF
//%Wc6O6OPfkk!
 M	 :AMM8V:
ww{{Hf56	 r   dstsrcc                     t        j                  |        |j                         D ]F  \  }}t        t        j                  | |j                  ||      |j                  ||      d             H y )Nr   )r   av_dict_freeitemsr   av_dict_setencode)r   r    r   r   r   r   s         r   dict_to_avdictr&      s_     Siik 

UOOSZZ&15<<&3QST	

r   c                 t    | j                   r,| j                  r t        | j                   | j                        S y r	   )numdenr   )r   s    r   avrational_to_fractionr*   /   s)     yyUYY		599--r   fracc                 H    | j                   |_        | j                  |_        y r	   )	numeratorr(   denominatorr)   )r+   r   s     r   to_avrationalr/   8   s    EI  EIr   arraydtypendimc                     | j                   |k7  rt        d| d| j                    d      | j                  |k7  rt        d| d| j                   d      y)zR
    Check a numpy array has the expected data type and number of dimensions.
    z!Expected numpy array with dtype `z` but got ``z Expected numpy array with ndim `N)r1   
ValueErrorr2   )r0   r1   r2   s      r   check_ndarrayr6   >   si    
 {{e/wk%++aP
 	
 zzT.tfK

|1M
 	
 r   )	fractionsr   r
   cython.cimportsr   r   cython.cimports.av.errorr   cfuncpointercharstrr   AVDictionarydictr   r&   const
AVRationalobjectr*   voidr/   intr6    r   r   <module>rF      s     ( . :v~~fkk* : : : >>#**+7:DG	   
	s'7'78	9
	
 
 	
 
 >>&,,s~~67  ! !v~~cnn'E !&++ ! !
 
 
 
fjj 
V[[ 
 
r   