Ë
    ÛÍ:jT  ã                   ó  — d dl Z d dlmZmZ d dlmZmZmZmZ d dl	m
Z
 e j                  e j                   G d„ d«      «       «       Ze j                  dde j                  dedz  fd	„«       Ze j                   G d
„ d«      «       Zy)é    N)ÚPyBUF_WRITABLEÚPyBuffer_FillInfo)ÚPyBUF_SIMPLEÚPyBuffer_ReleaseÚPyObject_CheckBufferÚPyObject_GetBuffer)Úmemcpyc                   ó   — e Zd Zd„ Zd„ Zy)Ú
ByteSourcec                 ó¬  — || _         	 || _        t        |«      | _        y # t        $ r Y nw xY wt        |«      r�t        |t        j                  | j                  «      t        «      }|s`d| _        t        j                  t        j                  | j                  j                  «      | _        | j                  j                  | _        y t	        d«      ‚)NTz'expected bytes, bytearray or memoryview)ÚownerÚptrÚlenÚlengthÚ	TypeErrorr   r   ÚcythonÚaddressÚviewr   Úhas_viewÚcastÚp_ucharÚbuf)Úselfr   Úress      ú^/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/av/buffer.pyÚ	__cinit__zByteSource.__cinit__   s¤   € ØˆŒ
ð	ØˆDŒHô ˜e›*ˆDŒKØøô	 ò 	Ùð	úô   Ô&ä$ U¬F¯N©N¸4¿9¹9Ó,EÄ|ÓTˆCÙØ $�”Ü!Ÿ;™;¤v§~¡~°t·y±y·}±}ÓE�”Ø"Ÿi™iŸm™m�”ØäÐAÓBÐBs   ‰! ¡	-¬-c                 ón   — | j                   r)t        t        j                  | j                  «      «       y y ©N)r   r   r   r   r   ©r   s    r   Ú__dealloc__zByteSource.__dealloc__%   s#   € Ø�=Š=ÜœVŸ^™^¨D¯I©IÓ6Õ7ð ó    N)Ú__name__Ú
__module__Ú__qualname__r   r    © r!   r   r   r      s   „ òCó,8r!   r   Ú
allow_noneÚreturnc                 óF   — |r| €y t        | t        «      r| S t        | «      S r   )Ú
isinstancer   )Úobjr&   s     r   Ú
bytesourcer+   *   s%   € á�c�kØÜ	�CœÔ	$Øˆ
ä˜#‹Ðr!   c                   óò   — e Zd ZdZej
                  dej                  fd„«       Zdej                  fd„Z	dej                  fd„Zdej                  e   dej                  fd„Zed	„ «       Zed
„ «       Zd„ Zy)ÚBufferzxA base class for PyAV objects which support the buffer protocol, such
    as :class:`.Packet` and :class:`.Plane`.

    r'   c                  ó   — y)Nr   r%   r   s    r   Ú_buffer_sizezBuffer._buffer_size;   s   € àr!   c                 ó"   — t         j                  S r   )r   ÚNULLr   s    r   Ú_buffer_ptrzBuffer._buffer_ptr?   s   € Ü�{‰{Ðr!   c                  ó   — y)NTr%   r   s    r   Ú_buffer_writablezBuffer._buffer_writableB   s   € Ør!   r   Úflagsc                 ó¤   — |t         z  r| j                  «       st        d«      ‚t        || | j	                  «       | j                  «       d|«       y )Núbuffer is not writabler   )r   r4   Ú
ValueErrorr   r2   r/   )r   r   r5   s      r   Ú__getbuffer__zBuffer.__getbuffer__E   sF   € Ø”>Ò!¨$×*?Ñ*?Ô*AÜÐ5Ó6Ð6ä˜$  d×&6Ñ&6Ó&8¸$×:KÑ:KÓ:MÈqÐRWÕXr!   c                 ó"   — | j                  «       S r   )r/   r   s    r   Úbuffer_sizezBuffer.buffer_sizeK   s   € à× Ñ Ó"Ð"r!   c                 óf   — t        j                  t         j                  | j                  «       «      S )z!The memory address of the buffer.)r   r   Úsize_tr2   r   s    r   Ú
buffer_ptrzBuffer.buffer_ptrO   s"   € ô �{‰{œ6Ÿ=™=¨$×*:Ñ*:Ó*<Ó=Ð=r!   c                 ó  — | j                  «       st        d«      ‚t        |«      }| j                  «       }|j                  |k7  rt        d|j                  › d|› d�«      ‚t        | j                  «       |j                  |«       y)zõReplace the data in this object with the given buffer.

        Accepts anything that supports the `buffer protocol <https://docs.python.org/3/c-api/buffer.html>`_,
        e.g. bytes, NumPy arrays, other :class:`Buffer` objects, etc..

        r7   zgot z bytes; need z bytesN)r4   r8   r+   r/   r   r	   r2   r   )r   ÚinputÚsourceÚsizes       r   ÚupdatezBuffer.updateT   sw   € ð ×$Ñ$Ô&ÜÐ5Ó6Ð6ä'¨Ó.ˆØ"×/Ñ/Ó1ˆà�=‰=˜DÒ Ü˜t F§M¡M ?°-À¸vÀVÐLÓMÐMäˆt×ÑÓ! 6§:¡:¨tÕ4r!   N)r"   r#   r$   Ú__doc__r   Úcfuncr=   r/   Úp_voidr2   Úbintr4   ÚpointerÚ	Py_bufferÚintr9   Úpropertyr;   r>   rC   r%   r!   r   r-   r-   4   sš   „ ñð
 ‡\�\ð˜fŸm™mò ó ðð˜VŸ]™]ó ð &§+¡+ó ðY &§.¡.°Ñ";ð YÀFÇJÁJó Yð ñ#ó ð#ð ñ>ó ð>ó5r!   r-   )F)r   Úcython.cimports.cpythonr   r   Úcython.cimports.cpython.bufferr   r   r   r   Úcython.cimports.libc.stringr	   ÚfinalÚcclassr   rE   rG   r+   r-   r%   r!   r   ú<module>rQ      s�   ðÛ ß E÷ó õ /ð ‡�Ø‡�÷8ð 8ó ó ð8ð8 ‡�ñ §¡ð ¸
ÀTÑ8Iò ó ðð ‡�÷/5ð /5ó ñ/5r!   