
    3j?                        S SK Jr  S SKJr  S SKrS SKJrJr  S SKJ	r	  S SK
Jr  \R                  " \\" 5       5      r " S S\5      r\R                   S	\S
\R$                  S\4S j5       r\R                   S	\S\R$                  4S j5       r\R,                   " S S\5      5       r\R,                   " S S5      5       r " S S\\5      rg)    )Mapping)EnumN)int32_t	uintptr_t)VideoEncParams)MotionVectorsc                      \ rS rSrSr\R                  r\R                  r	\R                  r\R                  r\R                  r\R                   r\R$                  r\R(                  r\R,                  r\R0                  r\R4                  r\R8                  r\R<                  r\R@                  r!\RD                  r#\RH                  r%\RL                  r'\RP                  r)\RT                  r+\RX                  r-\R\                  r/\R`                  r1\Rd                  r3\Rh                  r5\Rl                  r7\Rp                  r9\Rt                  r;\Rx                  r=Sr>g)Type   z
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____firstlineno____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__static_attributes__r       N/home/wildlama/miniconda3/lib/python3.13/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--JrL   r
   frameindexreturnc                 6   U R                   R                  U   R                  [        R                  :X  a  [        [        X5      $ U R                   R                  U   R                  [        R                  :X  a  [        [        X5      $ [        [        X5      $ N)
ptr	side_datatyper   r#   r   _cinit_bypass_sentinelr9   r   SideData)rN   rO   s     rM   wrap_side_datarX   3   sr    yy5!&&#*J*JJ3UBB			U	#	(	(C,N,N	N4eCC.==rL   c           
         [        U R                  R                  5       H  nU R                  R                  U   R                  [
        R                  :X  d  M:  [        [
        R                  [        R                  " [        R                  [        R                  [              U R                  R                  U   R                  5      5      5      s  $    g)Nr   )rangerS   nb_side_datarT   rU   r   r   intav_display_rotation_getcythoncastpointerconstr   data)rN   is     rM   get_display_rotationrd   =   s    599))*99q!&&#*I*II++KKv||G'<=		++A.33  + rL   c                      \ rS rSrS\S\R                  4S jr\R                  S\R                  4S j5       r
\R                  S\R                  4S j5       r\R                  S\R                  4S j5       rS	 r\S
 5       rSrg)rW   L   rN   rO   c                     U[         La  [        S5      eX l        UR                  R                  U   U l        [        U R                  R                  5      U l        g )Nz#cannot manually instatiate SideData)rV   RuntimeErrorrN   rS   rT   wrap_dictionarymetadata)selfsentinelrN   rO   s       rM   __init__SideData.__init__N   sH    11DEE
99&&u-'(9(9:rL   rP   c                 .    U R                   R                  $ rR   )rS   sizerk   s    rM   _buffer_sizeSideData._buffer_sizeU       xx}}rL   c                 .    U R                   R                  $ rR   )rS   rb   rq   s    rM   _buffer_ptrSideData._buffer_ptrY   rt   rL   c                     g)NFr   rq   s    rM   _buffer_writableSideData._buffer_writable]   s    rL   c                     SU R                   R                   SU R                  R                   SU R                   S[
        R                  " [        U R                  R                  5      S S3	$ )Nz<av.sidedata. z
 bytes of z at 0x0x>)		__class__r   rS   rp   rU   r^   r_   r   rb   rq   s    rM   __repr__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rL   c                 @    [        U R                  R                  5      $ rR   )r
   rS   rU   rq   s    rM   rU   SideData.typed   s    DHHMM""rL   )rN   rj   rS   N)r   r   r   r   Framer^   r\   rm   cfuncsize_trr   p_voidrv   bintry   r   propertyrU   rK   r   rL   rM   rW   rW   L   s    ; ;fjj ; \\fmm   \\V]]   \\&++  O # #rL   rW   c                   4    \ rS rSrS\4S jrS rS rS rSr	g)	_SideDataContaineri   rN   c                    Xl         / U l        0 U l        [        U R                   R                  R
                  5       HA  n[        X5      nU R                  R                  U5        X0R                  UR                  '   MC     g rR   )	rN   	_by_index_by_typerZ   rS   r[   rX   appendrU   )rk   rN   rc   rb   s       rM   rm   _SideDataContainer.__init__k   s`    
! 
 tzz~~223A!%+DNN!!$''+MM$))$ 4rL   c                 ,    [        U R                  5      $ rR   )lenr   rq   s    rM   __len___SideDataContainer.__len__x   s    4>>""rL   c                 ,    [        U R                  5      $ rR   )iterr   rq   s    rM   __iter___SideDataContainer.__iter__{   s    DNN##rL   c                     [        U[        5      (       a  U R                  U   $ [        U[        5      (       a  U R                  [
        U      $ U R                  U   $ rR   )
isinstancer\   r   strr   r
   )rk   keys     rM   __getitem___SideDataContainer.__getitem__~   sM    c3>>#&&c3==c++}}S!!rL   )r   r   rN   N)
r   r   r   r   r   rm   r   r   r   rK   r   rL   rM   r   r   i   s    ,e ,#$"rL   r   c                       \ rS rSrSrg)SideDataContainer   r   N)r   r   r   r   rK   r   rL   rM   r   r      s    rL   r   )collections.abcr   enumr   r^   cython.cimports.libc.stdintr   r   av.sidedata.encparamsr   av.sidedata.motionvectorsr   declareobjectrV   r
   r   r   r\   rW   rX   rd   cclassBufferr   r   r   rL   rM   <module>r      s    #   : 0 39 #.4 #.L >% >

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