
    dj              	       `   U d dl Z d dlmc mZ d dl mZmZ d dlmZm	Z	 d dl
mZ  e j        e j        e                   Ze j         e j        d          e j        de j        ded	e j        fd
                                    Ze j         G d d                      Z e            Zeed<   dS )    N)NULLsizeof)uint8_t	uintptr_t)memcpyF)checkopaquedatareturnc                     t          j        t           j        |          }t           j        5  t                              |           d d d            d S # 1 swxY w Y   d S N)cythoncastp_chargilopaque_containerpop)r	   r
   names      D/home/agentuser/manim-venv/lib/python3.11/site-packages/av/opaque.pykey_freer      s     !+fmT::D	 # #T"""# # # # # # # # # # # # # # # # # #s   AAAc                   v    e Zd Zd Zej        dedej        ej	                 fd            Z
defdZdefdZdS )OpaqueContainerc                     i | _         d S r   )_objects)selfs    r   	__cinit__zOpaqueContainer.__cinit__   s        vr   c                 (   t          j        t           j        t          |                    }|| j        |<   t          j        t
          t          j        t          t                                        }|t          k    rt          d          t          |t          j        |          t          t                               t          j        |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   u8ptrlib	av_mallocr   r   r   MemoryErrorr   addressav_buffer_creater   )r   r   keyr
   
buffer_refs        r   addzOpaqueContainer.add   s      V_bee<<ck%vi7H7H)I)IJJ4<<ABBBtV^C((&*;*;<<< 7:6J&##XtQ7
 7

 <===r   c                     t          j        t           j        t                   |          d         }| j                            |          S Nr   )r   r   pointerr   r   getr   r   r(   s      r   r.   zOpaqueContainer.get/   s5    V^I%>EEaH}  %%%r   c                     t          j        t           j        t                   |          d         }| j                            |d           S r,   )r   r   r-   r   r   r   r/   s      r   r   zOpaqueContainer.pop3   s7    V^I%>EEaH}  d+++r   N)__name__
__module____qualname__r   r   cfuncobjectr-   r#   AVBufferRefr*   r.   r    r   r   r   r      s           \V s ?    \*&6 & & & &,6 , , , , , ,r   r   r   )r   cython.cimports.libavcimportslibavr#   r   r   cython.cimports.libc.stdintr   r   cython.cimports.libc.stringr   typedefr-   r"   r4   	exceptvalnogilp_voidvoidr   cclassr   r   __annotations__r7   r   r   <module>rD      s?    # # # # # # # # #         : : : : : : : : . . . . . .v~g.// #V] #% #FK # # #   #  ,  ,  ,  ,  ,  ,  ,  ,F %4O$5$5 / 5 5 5 5 5r   