
    dj?                        d dl mZ d dlmZ d dlZd dlmZmZ d dlm	Z	 d dl
mZ  ej        e e                      Z G d de          Zej        d	ed
ej        defd            Zej        d	edej        fd            Zej         G d de                      Zej         G d d                      Z G d dee          ZdS )    )Mapping)EnumN)int32_t	uintptr_t)VideoEncParams)MotionVectorsc                      e Zd ZdZej        Zej        Zej	        Z
ej        Zej        Zej        Zej        Zej        Zej        Zej        Zej        Zej        Zej        Zej        Z ej!        Z"ej#        Z$ej%        Z&ej'        Z(ej)        Z*ej+        Z,ej-        Z.ej/        Z0ej1        Z2ej3        Z4ej5        Z6ej7        Z8ej9        Z:ej;        Z<dS )Typez
    Enum class representing different types of frame data in audio/video processing.
    Values are mapped to corresponding AV_FRAME_DATA constants from FFmpeg.

    From: https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/frame.h
    N)=__name__
__module____qualname____doc__libAV_FRAME_DATA_PANSCANPANSCANAV_FRAME_DATA_A53_CCA53_CCAV_FRAME_DATA_STEREO3DSTEREO3DAV_FRAME_DATA_MATRIXENCODINGMATRIXENCODINGAV_FRAME_DATA_DOWNMIX_INFODOWNMIX_INFOAV_FRAME_DATA_REPLAYGAIN
REPLAYGAINAV_FRAME_DATA_DISPLAYMATRIXDISPLAYMATRIXAV_FRAME_DATA_AFDAFDAV_FRAME_DATA_MOTION_VECTORSMOTION_VECTORSAV_FRAME_DATA_SKIP_SAMPLESSKIP_SAMPLES AV_FRAME_DATA_AUDIO_SERVICE_TYPEAUDIO_SERVICE_TYPE(AV_FRAME_DATA_MASTERING_DISPLAY_METADATAMASTERING_DISPLAY_METADATAAV_FRAME_DATA_GOP_TIMECODEGOP_TIMECODEAV_FRAME_DATA_SPHERICAL	SPHERICAL!AV_FRAME_DATA_CONTENT_LIGHT_LEVELCONTENT_LIGHT_LEVELAV_FRAME_DATA_ICC_PROFILEICC_PROFILEAV_FRAME_DATA_S12M_TIMECODES12M_TIMECODEAV_FRAME_DATA_DYNAMIC_HDR_PLUSDYNAMIC_HDR_PLUS!AV_FRAME_DATA_REGIONS_OF_INTERESTREGIONS_OF_INTERESTAV_FRAME_DATA_VIDEO_ENC_PARAMSVIDEO_ENC_PARAMSAV_FRAME_DATA_SEI_UNREGISTEREDSEI_UNREGISTEREDAV_FRAME_DATA_FILM_GRAIN_PARAMSFILM_GRAIN_PARAMSAV_FRAME_DATA_DETECTION_BBOXESDETECTION_BBOXESAV_FRAME_DATA_DOVI_RPU_BUFFERDOVI_RPU_BUFFERAV_FRAME_DATA_DOVI_METADATADOVI_METADATAAV_FRAME_DATA_DYNAMIC_HDR_VIVIDDYNAMIC_HDR_VIVID)AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENTAMBIENT_VIEWING_ENVIRONMENTAV_FRAME_DATA_VIDEO_HINT
VIDEO_HINT     O/home/agentuser/manim-venv/lib/python3.11/site-packages/av/sidedata/sidedata.pyr
   r
      s         'G%F)H5N1L-J3M

C5N1L=!$!M1L+I?/K3M9?99;97O3M;"%"O-JJJrI   r
   frameindexreturnc                    | j         j        |         j        t          j        k    rt          t          | |          S | j         j        |         j        t          j        k    rt          t          | |          S t          t          | |          S N)
ptr	side_datatyper   r    r   _cinit_bypass_sentinelr6   r   SideData)rK   rL   s     rJ   wrap_side_datarU   3   sq    y5!&#*JJJ3UEBBB		U	#	(C,N	N	N4eUCCC.u===rI   c           
      t   t          | j        j                  D ]}| j        j        |         j        t
          j        k    rvt          t
                              t          j
        t          j        t          j        t                            | j        j        |         j                                      c S dS )Nr   )rangerP   nb_side_datarQ   rR   r   r   intav_display_rotation_getcythoncastpointerconstr   data)rK   is     rJ   get_display_rotationra   =   s    59)** 	 	9q!&#*III++Kv|G'<=	+A.3       J 1rI   c                       e Zd Zdedej        fdZej        dej        fd            Z	ej        dej
        fd            Zej        dej        fd            Zd Zed	             Zd
S )rT   rK   rL   c                     |t           urt          d          || _        |j        j        |         | _        t          | j        j                  | _        d S )Nz#cannot manually instatiate SideData)rS   RuntimeErrorrK   rP   rQ   wrap_dictionarymetadata)selfsentinelrK   rL   s       rJ   __init__zSideData.__init__N   sM    111DEEE
9&u-'(9::rI   rM   c                     | j         j        S rO   )rP   sizerg   s    rJ   _buffer_sizezSideData._buffer_sizeU       x}rI   c                     | j         j        S rO   )rP   r_   rl   s    rJ   _buffer_ptrzSideData._buffer_ptrY   rn   rI   c                     dS )NFrH   rl   s    rJ   _buffer_writablezSideData._buffer_writable]   s    urI   c                     d| j         j         d| j        j         d| j         dt          j        t          | j        j                  dd	S )Nz<av.sidedata. z
 bytes of z at 0x0x>)		__class__r   rP   rk   rR   r[   r\   r   r_   rl   s    rJ   __repr__zSideData.__repr__a   s     Ot~6  O  O  O  ORVR[  O  Ocicnoxz~  {C  {H  dI  dI  O  O  O  O  	OrI   c                 4    t          | j        j                  S rO   )r
   rP   rR   rl   s    rJ   rR   zSideData.typed   s    DHM"""rI   N)r   r   r   Framer[   rY   ri   cfuncsize_trm   p_voidrp   bintrr   rx   propertyrR   rH   rI   rJ   rT   rT   L   s        ; ;fj ; ; ; ; \fm    \ \V]    \ \&+    \O O O # # X# # #rI   rT   c                   ,    e Zd ZdefdZd Zd Zd ZdS )_SideDataContainerrK   c                     || _         g | _        i | _        t          | j         j        j                  D ];}t          ||          }| j                            |           || j        |j        <   <d S rO   )	rK   	_by_index_by_typerW   rP   rX   rU   appendrR   )rg   rK   r`   r_   s       rJ   ri   z_SideDataContainer.__init__k   sw    
! 
 tz~233 	, 	,A!%++DN!!$''''+DM$)$$	, 	,rI   c                 *    t          | j                  S rO   )lenr   rl   s    rJ   __len__z_SideDataContainer.__len__x   s    4>"""rI   c                 *    t          | j                  S rO   )iterr   rl   s    rJ   __iter__z_SideDataContainer.__iter__{   s    DN###rI   c                     t          |t                    r| j        |         S t          |t                    r| j        t
          |                  S | j        |         S rO   )
isinstancerY   r   strr   r
   )rg   keys     rJ   __getitem__z_SideDataContainer.__getitem__~   sQ    c3 	'>#&&c3 	,=c++}S!!rI   N)r   r   r   rz   ri   r   r   r   rH   rI   rJ   r   r   i   s\        ,e , , , ,# # #$ $ $" " " " "rI   r   c                       e Zd ZdS )SideDataContainerN)r   r   r   rH   rI   rJ   r   r      s        DrI   r   )collections.abcr   enumr   r[   cython.cimports.libc.stdintr   r   av.sidedata.encparamsr   av.sidedata.motionvectorsr   declareobjectrS   r
   r{   rz   rY   rT   rU   ra   cclassBufferr   r   rH   rI   rJ   <module>r      s   # # # # # #        : : : : : : : : 0 0 0 0 0 0 3 3 3 3 3 3'99 #. #. #. #. #.4 #. #. #.L >% >
 >x > > > >  &*     # # # # #v # # #8 " " " " " " " "8	 	 	 	 	*G 	 	 	 	 	rI   