o
    2j                  	   @   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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   C/var/www/html/whisper/venv/lib/python3.10/site-packages/av/utils.py_decode	   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_setencode)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_avrational8   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_ndarray>   s   

r/   )	fractionsr   r   cython.cimportsr   r   cython.cimports.av.errorr   cfuncpointercharstrr   AVDictionarydictr   r"   const
AVRationalobjectr%   voidr)   intr/   r   r   r   r   <module>   sH   
"$