
    \j8                        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y)    )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j2                  Zej6                  Zej:                  Zej>                  Z ejB                  Z"ejF                  Z$ejJ                  Z&ejN                  Z(ejR                  Z*ejV                  Z,ejZ                  Z.ej^                  Z0ejb                  Z2ejf                  Z4ejj                  Z6ejn                  Z8ejr                  Z:ejv                  Z<y)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     G/root/.hermes/venv/lib/python3.12/site-packages/av/sidedata/sidedata.pyr
   r
      sH    ''G%%F))H55N11L--J33M


C55N11L==!$!M!M11L++I??//K33M99??9999;;9977O33M;;"%"O"O--JrI   r
   frameindexreturnc                 8   | 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   sx    yy5!&&#*J*JJ3UEBB			U	#	(	(C,N,N	N4eUCC.u==rI   c           
         t        | j                  j                        D ]  }| j                  j                  |   j                  t
        j                  k(  s8t        t
        j                  t        j                  t        j                  t        j                  t              | j                  j                  |   j                                    c S  y)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    599))* 	99q!&&#*I*II++KKv||G'<=		++A.33 	 rI   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y
)rT   rK   rL   c                     |t         urt        d      || _        |j                  j                  |   | _        t        | j                  j                        | _        y )Nz#cannot manually instatiate SideData)rS   RuntimeErrorrK   rP   rQ   wrap_dictionarymetadata)selfsentinelrK   rL   s       rJ   __init__zSideData.__init__N   sJ    11DEE
99&&u-'(9(9:rI   rM   c                 .    | j                   j                  S rO   )rP   sizerg   s    rJ   _buffer_sizezSideData._buffer_sizeU       xx}}rI   c                 .    | j                   j                  S rO   )rP   r_   rl   s    rJ   _buffer_ptrzSideData._buffer_ptrY   rn   rI   c                      y)NFrH   rl   s    rJ   _buffer_writablezSideData._buffer_writable]   s    rI   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    t~~667qzRVR[R[Q\\bcicncnoxz~  {C  {C  {H  {H  dI  JL  cM  MN  O  	OrI   c                 @    t        | j                  j                        S rO   )r
   rP   rR   rl   s    rJ   rR   zSideData.typed   s    DHHMM""rI   N)r   r   r   Framer[   rY   ri   cfuncsize_trm   p_voidrp   bintrr   rx   propertyrR   rH   rI   rJ   rT   rT   L   s    ; ;fjj ; \\fmm   \\V]]   \\&++  O # #rI   rT   c                   *    e Zd ZdefdZd Zd Zd Zy)_SideDataContainerrK   c                 
   || _         g | _        i | _        t        | j                   j                  j
                        D ]B  }t        ||      }| j                  j                  |       || j                  |j                  <   D y rO   )	rK   	_by_index_by_typerW   rP   rX   rU   appendrR   )rg   rK   r`   r_   s       rJ   ri   z_SideDataContainer.__init__k   sk    
! 
 tzz~~223 	,A!%+DNN!!$''+DMM$))$	,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    DNN##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__~   sG    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y)SideDataContainerN)r   r   r   rH   rI   rJ   r   r      s    rI   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 3'9 #.4 #.L >% >

 >x > >  &**   #v # #8 " " "8	*G 	rI   