o
    2j                  	   @   s   U d dl Z d dlm  mZ d dl mZmZ d dlmZm	Z	 d dl
mZ e e je Ze je jdde jde jded	e jfd
dZe je jG dd dZe Zeed< dS )    N)NULLsizeof)uint8_t	uintptr_t)memcpyF)checkopaquedatareturnc                 C   sL   t t j|}t j t| W d    n1 sw   Y  t| d S N)cythoncastp_chargilopaque_containerpoplibav_free)r   r	   name r   D/var/www/html/whisper/venv/lib/python3.10/site-packages/av/opaque.pykey_free   s
   r   c                   @   sP   e Zd Zdd Zejdedejej	 fddZ
defddZdefd	d
ZdS )OpaqueContainerc                 C   s
   i | _ d S r   )_objects)selfr   r   r   	__cinit__   s   
zOpaqueContainer.__cinit__vr
   c                 C   s   t t jt|}|| j|< t tttt	}|t
kr!tdt|t |tt	 t|tt	tt
d}|t
kr?td|S )Nz!Failed to allocate memory for keyr   zFailed to create AVBufferRef)r   r   longlongidr   u8ptrr   	av_mallocr   r   r   MemoryErrorr   addressav_buffer_creater   )r   r   keyr	   
buffer_refr   r   r   add   s   
zOpaqueContainer.addc                 C   s"   t t jt |d }| j|S Nr   )r   r   pointerr   r   getr   r   r$   r   r   r   r)   1   s   zOpaqueContainer.getc                 C   s$   t t jt |d }| j|d S r'   )r   r   r(   r   r   r   r*   r   r   r   r   5   s   zOpaqueContainer.popN)__name__
__module____qualname__r   r   cfuncobjectr(   r   AVBufferRefr&   r)   r   r   r   r   r   r      s    r   r   )r   cython.cimports.libavcimportslibavr   r   r   cython.cimports.libc.stdintr   r   cython.cimports.libc.stringr   typedefr(   r   r.   	exceptvalnogilp_voidvoidr   finalcclassr   r   __annotations__r   r   r   r   <module>   s   

 #