o
    ]i                  	   @   s*  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dZejdefd	d
Zejdej	ej dededefddZejdej	ej	ej  dededefddZejdej	ejej  defddZejdedej	ej dejfddZejdededejdejfddZdS )    )FractionN)libav)	err_checksreturnc                 C   s   t t| ||S N)cythoncastbytesdecoder   encodingerrors r   </home/ubuntu/.local/lib/python3.10/site-packages/av/utils.py_decode   s   r   c                 C   s   |  ||S r   )encoder   r   r   r   _encode   s   r   inputr   r   c                 C   sL   t j}i }	 t| d|tj}|t jkr	 |S t|j|||t|j||< q)NT )r   NULLlibav_dict_getAV_DICT_IGNORE_SUFFIXr   valuekey)r   r   r   elementoutputr   r   r   avdict_to_dict   s   
r   dstsrcc              
   C   sD   t |  | D ]\}}tt | ||||||d q	d S )Nr   )r   av_dict_freeitemsr   av_dict_setr   )r   r    r   r   r   r   r   r   r   dict_to_avdict'   s   
r$   c                 C   s   | j r| jrt| j | jS d S r   )numdenr   )r   r   r   r   avrational_to_fraction;   s   r'   fracc                 C   s   | j |_| j|_d S r   )	numeratorr%   denominatorr&   )r(   r   r   r   r   to_avrationalD   s   r+   arraydtypendimc                 C   sH   | j |krtd| d| j  d| j|kr"td| d| j ddS )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)r-   
ValueErrorr.   )r,   r-   r.   r   r   r   check_ndarrayJ   s   

r1   )	fractionsr   r   cython.cimportsr   r   cython.cimports.av.errorr   cfuncpointercharstrr   r
   r   AVDictionarydictr   r$   const
AVRationalobjectr'   voidr+   intr1   r   r   r   r   <module>   sL   
"$