Ë
    ÛÍ:jvç  ã                   óÈ  — d dl Z d dlmZ d dlZd dlmc mZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZ d dlmZmZmZmZ d d	lmZ d d
lmZmZmZ d dlmZm Z  d dl!m"Z"m#Z# ejH                  ejJ                   G d„ d«      «       «       Z&ejN                  de(de(dejR                  e   fd„«       Z*ejN                  ejV                   ejX                  d¬«      dejZ                  dejR                  e#   dej\                  fd„«       «       «       Z/ejN                  ejV                   ejX                  d¬«      dejZ                  dejR                  e#   dej\                  fd„«       «       «       Z0 ejb                  e( e(«       «      Z2h d£Z3 ejb                  e4e5e6ejn                  e5f   f   i dd“dd“dd“dd“d d“d!d“d"d#“d$d#“d%d#“d&d#“d'd#“d(d#“d)d#“d*d#“d+d,“d-d.“d/d.“i d0d“d1d“d2d3“d4d3“d5d“d6d#“d7d#“d8d#“d9d#“d:d#“d;d#“d<d#“d=d#“d>d?“d@d?“dAd“dBd#“¥i dCd#“dDd#“dEd#“dFd#“dGd#“dHd#“dId#“dJd#“dKd#“dLd?“dMd?“dNd“dOd#“dPd#“dQd#“dRd#“dSd#“¥i dTd#“dUd#“dVd#“dWd“dXd#“dYd#“dZd?“d[d?“d\d,“d]d.“d^d.“d_d“d`d“dad3“dbd3“dcdd“dedd“¥dfdfdgdgdd#d#d#d#ddhdiœ¥«      Z8ejN                  de9fdj„«       Z: G dk„ dle«      Z; ejb                  ejx                  e jz                  dmk(  «      Z>ejN                  ej~                  dnejx                  fdo„«       «       Z@ejN                  dpedqejn                  drejx                  dsejx                  fdt„«       ZAejN                  dpedqejn                  fdu„«       ZBejN                  ej~                  	 ddpedqejn                  dve5fdw„«       «       ZCejN                  dxe(dyejx                  fdz„«       ZDejH                  ejJ                   G d{„ d|eE«      «       «       Z9y)}é    N)ÚIntEnum)Ú
Dictionary)Ú	err_check©Úget_display_rotation)Úcheck_ndarray)Úget_pix_fmtÚget_video_format)ÚDLManagedTensorÚ
VideoPlaneÚkCPUÚkCuda)ÚPyErr_Clear)ÚPyCapsule_GetPointerÚPyCapsule_IsValidÚPyCapsule_SetName)Ú	Py_DECREFÚ	Py_INCREF)Úint64_tÚuint8_tc            
       óD  — e Zd Zddej                  dej
                  fd„Zd„ Zej                  dej                  e
j                     fd„«       Zej                  de
j                  dej                  d	ej                  dej                  e
j                     fd
„«       Zy)ÚCudaContextÚ	device_idÚprimary_ctxc                 óX   — || _         || _        t        j                  | _        i | _        y ©N)r   r   ÚcythonÚNULLÚ_device_refÚ_frames_cache)Úselfr   r   s      úc/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/av/video/frame.pyÚ	__cinit__zCudaContext.__cinit__   s%   € Ø"ˆŒØ&ˆÔÜ!Ÿ;™;ˆÔØˆÕó    c                 ó.  — | j                   j                  «       D ]�  }t        j                  t        j                  t
        j                     t        j                  t        j                  |«      «      }t        j                  t        j                  |«      «       Œƒ | j                   j                  «        | j                  }|t        j                  k7  r>t        j                  t        j                  |«      «       t        j                  | _        y y r   )r    Úvaluesr   ÚcastÚpointerÚlibÚAVBufferRefÚsize_tÚav_buffer_unrefÚaddressÚclearr   r   )r!   ÚvÚrefs      r"   Ú__dealloc__zCudaContext.__dealloc__   s¾   € ð ×#Ñ#×*Ñ*Ó,ò 	5ˆAÜ—+‘+Ü—‘œsŸ™Ñ/Ü—‘œFŸM™M¨1Ó-óˆCô ×Ñ¤§¡¨sÓ 3Õ4ð	5ð 	×Ñ× Ñ Ô"à×ÑˆØ”&—+‘+ÒÜ×Ñ¤§¡¨sÓ 3Ô4Ü%Ÿ{™{ˆDÕð r$   Úreturnc           	      ó€  — | j                   }|t        j                  k7  r|S t        j                  }| j                  › j	                  «       }|}t        d| j                  rdndi«      }t        t        j                  t        j                  |«      t        j                  ||j                  d«      «       || _         |S )Nr   Ú1Ú0r   )r   r   r   r   Úencoder   r   r   r)   Úav_hwdevice_ctx_creater-   ÚAV_HWDEVICE_TYPE_CUDAÚptr)r!   Ú
device_refÚdevice_bytesÚc_deviceÚoptionss        r"   Ú_get_device_refzCudaContext._get_device_ref/   s¨   € à6:×6FÑ6Fˆ
ØœŸ™Ò$ØÐä—[‘[ˆ
ØŸ.™.Ð)×1Ñ1Ó3ˆØ".ˆÜ(Ø 4×#3Ò#3™C¸Ð=ó
ˆô 	Ü×&Ñ&Ü—‘˜zÓ*Ü×)Ñ)ØØ—‘Øóô	
ð &ˆÔØÐr$   Úsw_fmtÚwidthÚheightc                 óÌ  — t        |«      t        |«      t        |«      f}| j                  j                  |«      }|�Œt        j                  t        j
                  t        j                     t        j                  t        j                  |«      «      }t        j                  |«      }|t        j                  k(  rt        d«      ‚|S | j                  «       }t        j                  |«      }	|	t        j                  k(  rt        d«      ‚	 t        j                  t        j
                  t        j                     |	j                  «      }
t!        d«      |
_        ||
_        t        |«      |
_        t        |«      |
_        t+        t        j,                  |	«      «       t        j                  |	«      }|t        j                  k(  r3t        j0                  t        j2                  |	«      «       t        d«      ‚t        j                  t        j                  |	«      | j                  |<   |S # t.        $ r* t        j0                  t        j2                  |	«      «       ‚ w xY w)Nzav_buffer_ref() failedzav_hwframe_ctx_alloc() failedó   cuda)Úintr    Úgetr   r'   r(   r)   r*   r+   Úav_buffer_refr   ÚMemoryErrorr>   Úav_hwframe_ctx_allocÚAVHWFramesContextÚdatar	   ÚformatÚ	sw_formatr@   rA   r   Úav_hwframe_ctx_initÚ	Exceptionr,   r-   )r!   r?   r@   rA   ÚkeyÚcachedÚ
cached_refÚout_refr:   Ú
frames_refÚ
frames_ctxs              r"   Úget_frames_ctxzCudaContext.get_frames_ctxG   sÒ  € ô �6‹{œC ›J¬¨F«Ð4ˆØ×#Ñ#×'Ñ'¨Ó,ˆð ÐÜŸ™Ü—‘œsŸ™Ñ/Ü—‘œFŸM™M¨6Ó2óˆJô ×'Ñ'¨
Ó3ˆGØœ&Ÿ+™+Ò%Ü!Ð":Ó;Ð;ØˆNà×)Ñ)Ó+ˆ
ä69×6NÑ6NØó7
ˆ
ð œŸ™Ò$ÜÐ=Ó>Ð>ð	Ü@FÇÁÜ—‘œs×4Ñ4Ñ5°z·±óAˆJô !,¨GÓ 4ˆJÔØ#)ˆJÔ Ü" 5›zˆJÔÜ # F£ˆJÔÜ”c×-Ñ-¨jÓ9Ô:ô
 ×#Ñ# JÓ/ˆØ”f—k‘kÒ!Ü×Ñ¤§¡¨zÓ :Ô;ÜÐ6Ó7Ð7ä"(§+¡+¬f¯m©m¸ZÓ"Hˆ×Ñ˜3ÑØˆøô ò 	Ü×Ñ¤§¡¨zÓ :Ô;Øð	ús   ÄBH0 È03I#N)r   T)Ú__name__Ú
__module__Ú__qualname__r   rD   Úbintr#   r1   Úcfuncr(   r)   r*   r>   ÚAVPixelFormatrU   © r$   r"   r   r      s§   „ ñ  6§:¡:ð  ÀÇÁó  ò+ð  ‡\�\ð §¡°·±Ñ!@ò ó ðð. ‡\�\ð0à×!Ñ!ð0ð �z‰zð0ð —
‘
ð	0ð
 
�‰˜Ÿ™Ñ	(ò0ó ñ0r$   r   ÚobjÚstreamr2   c                 óˆ  — t        | d«      r%|€| j                  «       n| j                  |¬«      }n| }t        |d«      st        «        t	        d«      ‚t        j                  t
        j                  t           t        |d«      «      }|t
        j                  k(  rt        d«      ‚t        |d«      dk7  rt        d«      ‚|S )	NÚ
__dlpack__)r^   s   dltensorz>expected a DLPack capsule or an object implementing __dlpack__z"PyCapsule_GetPointer returned NULLs   used_dltensorr   zPyCapsule_SetName failed)Úhasattrr`   r   r   Ú	TypeErrorr   r'   r(   r   r   r   Ú
ValueErrorr   ÚRuntimeError)r]   r^   ÚcapsuleÚmanageds       r"   Ú_consume_dlpackrg   {   s±   € ô
 ˆs�LÔ!Ø&, n�#—.‘.Ô"¸#¿.¹.ÐPV¸.Ó:W‰àˆä˜W kÔ2ÜŒÜØLó
ð 	
ô �k‰kÜ�‰”Ñ'Ü˜W kÓ2ó€Gð ”&—+‘+ÒÜÐ=Ó>Ð>ä˜Ð"2Ó3°qÒ8ÜÐ5Ó6Ð6à€Nr$   F)ÚcheckÚopaquerJ   c                 ó¤   — t        j                  t         j                  t           | «      }|t         j                  k7  r|j                  |«       y y r   )r   r'   r(   r   r   Údeleter)ri   rJ   rf   s      r"   Ú_dlpack_avbuffer_freerl   ˜   s?   € ô 06¯{©{Ü�‰”Ñ'¨ó0€Gð ”&—+‘+ÒØ�‰˜Õ ð r$   c                 ó¼   — | t         j                  k7  r=t         j                  5  t        t        j                  t
        | «      «       d d d «       y y # 1 sw Y   y xY wr   )r   r   Úgilr   r'   Úobject)ri   rJ   s     r"   Ú_numpy_avbuffer_freerp   ¦   sI   € ð ”—‘ÒÜ�Z‰Zñ 	3Ü”f—k‘k¤&¨&Ó1Ô2÷	3ð 	3ð ÷	3ð 	3ús   ¤$AÁA>T   ÚabgrÚargbÚbgr8ÚbgraÚgbrpÚgrayÚnv12Úpal8Úrgb8ÚrgbaÚbgr24ÚgbrapÚgray8Úrgb24Úbgr48beÚbgr48leÚgbrp9beÚgbrp9leÚgray9beÚgray9leÚrgb48beÚrgb48leÚyuv420pÚyuv444pÚyuyv422Úbgra64beÚbgra64leÚgbrp10beÚgbrp10leÚgbrp12beÚgbrp12leÚgbrp14beÚgbrp14leÚgbrp16beÚgbrp16leÚgray10beÚgray10leÚgray12beÚgray12leÚgray14beÚgray14leÚgray16beÚgray16leÚrgba64beÚrgba64leÚrgbf32beÚrgbf32leÚyuvj420pÚyuvj444pÚ	gbrap10beÚ	gbrap10leÚ	gbrap12beÚ	gbrap12leÚ	gbrap14beÚ	gbrap14leÚ	gbrap16beÚ	gbrap16leÚ	gbrpf32beÚ	gbrpf32leÚ	grayf32beÚ	grayf32leÚ	rgbaf16beÚ	rgbaf16leÚ	rgbaf32beÚ	rgbaf32leÚ
gbrapf32beÚ
gbrapf32leÚbayer_bggr8Úbayer_gbrg8Úbayer_grbg8Úbayer_rggb8Úyuv422p10leÚyuv444p16beÚyuv444p16leÚyuva444p16beÚyuva444p16leÚbayer_bggr16beÚbayer_bggr16leÚbayer_gbrg16beÚbayer_gbrg16leÚbayer_grbg16beÚbayer_grbg16leÚbayer_rggb16beÚbayer_rggb16lerq   )é   Úuint8rr   r´   )é   rÆ   rµ   r¶   r·   r¾   )é   Úuint16r½   rÀ   r¿   rÂ   rÁ   rÄ   rÃ   r{   )é   rÆ   r   )é   rÉ   r€   rs   rt   rŠ   )é   rÉ   r‹   r|   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   r²   )rÅ   Úfloat32r³   ru   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r�   r‚   rª   r«   rv   r”   r•   r–   r—   r˜   r™   rš   r›   r}   rƒ   r„   r¬   r­   r~   r…   r†   ry   rz   rœ   r�   r®   )rÌ   Úfloat16r¯   )é   rÍ   )é   rÍ   )rÈ   rÆ   )r°   r±   rž   rŸ   rˆ   r¹   rº   r»   r¼   r¡   r‰   c                  ó    — t        t        «      S )zœGet a mostly uninitialized VideoFrame.

    You MUST call VideoFrame._init(...) or VideoFrame._init_user_attributes()
    before exposing to the user.

    )Ú
VideoFrameÚ_cinit_bypass_sentinelr\   r$   r"   Úalloc_video_framerÔ   d  s   € ô Ô,Ó-Ð-r$   c                   óÌ   — e 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y)ÚPictureTypeN)rV   rW   rX   r)   ÚAV_PICTURE_TYPE_NONEÚNONEÚAV_PICTURE_TYPE_IÚIÚAV_PICTURE_TYPE_PÚPÚAV_PICTURE_TYPE_BÚBÚAV_PICTURE_TYPE_SÚSÚAV_PICTURE_TYPE_SIÚSIÚAV_PICTURE_TYPE_SPÚSPÚAV_PICTURE_TYPE_BIÚBIr\   r$   r"   rÖ   rÖ   o  sZ   „ Ø×#Ñ#€DØ×Ñ€AØ×Ñ€AØ×Ñ€AØ×Ñ€AØ	×	Ñ	€BØ	×	Ñ	€BØ	×	Ñ	�Br$   rÖ   ÚbigÚ
big_endianc                 ó8   — t         |k7  r| j                  «       S | S r   )Ú_is_big_endianÚbyteswap)Úarrayrè   s     r"   Úbyteswap_arrayrí   }  s   € ô ˜Ò#Ø�~‰~ÓÐØ€Lr$   ÚplaneÚbytes_per_pixelÚflip_horizontalÚflip_verticalc                 óÈ  — | }d}|j                   |z  }|}d}	t        |j                  «      }
t        j                  t        j
                  «      \  }}}|r|j                  dz
  }d}d}nd}|j                  }d}t        |||«      D ]Y  }||z  }|r=t        d||«      D ],  }t        |«      D ]  }|||z   |z
  |z
  |z      ||	|z   |z   <   Œ Œ. n||||z    ||	|	|z    |	|
z  }	Œ[ y )Nr   rÇ   éÿÿÿÿ)r@   ÚabsÚ	line_sizer   ÚdeclarerD   rA   Úrange)Ú	img_bytesrî   rï   rð   rñ   Úi_bufÚi_posÚi_strideÚo_bufÚo_posÚo_strideÚ	start_rowÚend_rowÚstepÚrowÚiÚjs                    r"   Úcopy_bytes_to_planer  …  s"  € ð '0€EØ€EØ#Ÿk™k¨OÑ;€Hà€EØ€EÜ! %§/¡/Ó2€Hä%Ÿ~™~¬f¯j©jÓ9Ñ€Iˆw˜ÙØ—L‘L 1Ñ$ˆ	ØˆØ‰àˆ	Ø—,‘,ˆØˆä�Y ¨Ó.ò ˆØ�h‘ˆÙä˜1˜h¨Ó8ò �ä˜Ó/ò �AØ+0Ø Ñ(¨1Ñ,¨Ñ>ÀÑBñ,�E˜% !™) a™-Ò(ññð /4°E¸EÀHÑ<LÐ.MˆE�%˜% (Ñ*Ð+Ø�Ñ‰ñr$   c                 óB   — | j                  «       }t        |||dd«       y )NF)Útobytesr  )rì   rî   rï   Úimgbytess       r"   Úcopy_array_to_planer	  ®  s   € à—m‘m“o€HÜ˜ %¨¸%ÀÕGr$   Údtypec                 óÖ  — ddl }|j                  |«      }| j                  j                  j                  | j
                     }t        |«      }|j                  }||z  }|dk(  r| j                  | j                  f}	||f}
n| j                  | j                  |f}	|||f}
|dk  r2| j                  dz
  |z  }| g|
dd ¢­}
|j                  |	|| ||
¬«      S |j                  |	|| |
¬«      S )z¦
    Return the useful part of the VideoPlane as a strided array.

    We are simply creating a view that discards any padding which was added for
    alignment.
    r   NrÇ   )r
  ÚbufferÚoffsetÚstrides)r
  r  r  )Únumpyr
  Úframer9   ÚlinesizeÚindexrô   ÚitemsizerA   r@   Úndarray)rî   rï   r
  ÚnpÚ	dtype_objrõ   Útotal_line_sizer  ÚchannelsÚshaper  r  s               r"   Úuseful_arrayr  ´  sû   € ó à—‘˜“€IØ—‘—‘×(Ñ(¨¯©Ñ5€IÜ˜)“n€OØ×!Ñ!€HØ (Ñ*€Hà�1‚}Ø—‘˜uŸ{™{Ð+ˆØ" HÐ-‰à—‘˜uŸ{™{¨HÐ5ˆØ" O°XÐ>ˆà�1‚}Ø—,‘, Ñ" oÑ5ˆØ#Ð#Ð2 g¨a¨b kÑ2ˆØ�z‰zØ˜¨5¸Èð ó 
ð 	
ð �:‰:�e 9°UÀGˆ:ÓLÐLr$   rì   Úokc                 ó:   — |st        d| j                  › d�«      ‚y )NzUnexpected numpy array shape `ú`)rc   r  )rì   r  s     r"   Úcheck_ndarray_shaper  Ø  s#   € áÜÐ9¸%¿+¹+¸ÀaÐHÓIÐIð r$   c                   óì  — e Zd Zd)d„Zej
                  dej                  dej                  dej                  fd„«       Z	ej
                  d„ «       Z
d„ Zd„ Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zej(                  d„ «       Zed„ «       Zej(                  d„ «       Zed„ «       Zej(                  d„ «       Zed„ «       Zej(                  d„ «       Zed„ «       Zej(                  d„ «       Zd„ Zd„ Zej6                  defd„«       Zd„ Zd*d„Zd„ Z e!d„ «       Z"e!d+d „«       Z#d!„ Z$e!d,d"„«       Z%e!	 	 	 d-d#e&de'de'fd$„«       Z(e!	 	 	 	 	 	 	 d.de)de'de'd&e'd%z  d'e*f
d(„«       Z+y%)/rÒ   c                 óR   — |t         u ry t        |«      }| j                  |||«       y r   )rÓ   r	   Ú_init)r!   r@   rA   rK   Úc_formats        r"   r#   zVideoFrame.__cinit__á  s(   € ØÔ*Ñ*Øä&1°&Ó&9ˆØ�
‰
�8˜U FÕ+r$   rK   r@   rA   c                 ó:  — d}t         j                  5  || j                  _        || j                  _        || j                  _        |r"|r t        j                  | j                  d«      }d d d «       |rt        |«       | j                  «        y # 1 sw Y   Œ'xY w)Nr   rÏ   )
r   Únogilr9   r@   rA   rK   r)   Úav_frame_get_bufferr   Ú_init_user_attributes)r!   rK   r@   rA   Úress        r"   r!  zVideoFrame._initè  sy   € àˆä�\‰\ñ 	<Ø"ˆD�H‰HŒNØ$ˆD�H‰HŒOØ$ˆD�H‰HŒOñ ™Ü×-Ñ-¨d¯h©h¸Ó;�÷	<ñ Ü�cŒNà×"Ñ"Õ$÷	<ð 	<ús   “ABÂBc                 óä   — t        t        j                  t        j                  | j
                  j                  «      | j
                  j                  | j
                  j                  «      | _        y r   )	r
   r   r'   r)   r[   r9   rK   r@   rA   ©r!   s    r"   r&  z VideoFrame._init_user_attributesû  s@   € ä&Ü�K‰Kœ×)Ñ)¨4¯8©8¯?©?Ó;Ø�H‰H�N‰NØ�H‰H�O‰Oó
ˆ�r$   c                 óB   — t        j                  | j                  «       y r   )r)   Úav_frame_unrefr9   r)  s    r"   r1   zVideoFrame.__dealloc__  s   € Ü×Ñ˜4Ÿ8™8Õ$r$   c                 óÌ   — d| j                   j                  › d| j                  › d| j                  j                  › d| j
                  › d| j                  › dt        | «      d›d�S )Nz<av.z, pts=ú Úxz at 0xú>)Ú	__class__rV   ÚptsrK   Únamer@   rA   Úidr)  s    r"   Ú__repr__zVideoFrame.__repr__  s\   € à�4—>‘>×*Ñ*Ð+¨6°$·(±(°¸1¸T¿[¹[×=MÑ=MÐ<NÈaØ�z‰zˆl˜!˜DŸK™K˜=¨¬r°$«x¸¨l¸!ð=ð	
r$   c           	      óB  — | j                   }| j                  j                  r’t        j                  t        j
                  t        j                     | j                  j                  j                  «      }t        |j                  | j                  j                  | j                  j                  «      }d}t        |j                  j                  «      D ]0  }|j                  j                  |   j                   dz   }||k  sŒ/|}Œ2 |j"                  dk(  rd}d}||k  r=| j                  j$                  |   r$|dz  }||k  r| j                  j$                  |   rŒ$|dk(  rt'        | d«      fS t)        t        |«      D �cg c]  }t'        | |«      ‘Œ c}«      S c c}w )z:
        A tuple of :class:`.VideoPlane` objects.
        r   rÇ   rx   rÈ   )rK   r9   Úhw_frames_ctxr   r'   r(   r)   rI   rJ   r
   rL   r@   rA   r÷   Únb_componentsÚcomprî   r2  Úextended_datar   Útuple)r!   ÚfmtrT   Úmax_plane_countr  ÚcountÚplane_counts          r"   ÚplaneszVideoFrame.planes  sW  € ð �k‰kˆØ�8‰8×!Ò!Ü@FÇÁÜ—‘œs×4Ñ4Ñ5°t·x±x×7MÑ7M×7RÑ7RóAˆJô #Ø×$Ñ$ d§h¡h§n¡n°d·h±h·o±oóˆCð '(ˆÜ�s—w‘w×,Ñ,Ó-ò 	(ˆAØ—G‘G—L‘L ‘O×)Ñ)¨AÑ-ˆEØ Ó&Ø"'‘ð	(ð �8‰8�vÒØˆOà"#ˆØ˜OÒ+°·±×0FÑ0FÀ{Ò0SØ˜1ÑˆKð ˜OÒ+°·±×0FÑ0FÀ{Ó0Sà˜!ÒÜ˜t QÓ'Ð)Ð)Ü´5¸Ó3EÖF¨a”j  qÕ)ÒFÓGÐGùÒFs   ÆFc                 ó.   — | j                   j                  S )zWidth of the image, in pixels.)r9   r@   r)  s    r"   r@   zVideoFrame.width,  s   € ð �x‰x�~‰~Ðr$   c                 ó.   — | j                   j                  S )zHeight of the image, in pixels.)r9   rA   r)  s    r"   rA   zVideoFrame.height1  s   € ð �x‰x�‰Ðr$   c                 ó   — t        | «      S )zÿThe rotation component of the `DISPLAYMATRIX` transformation matrix.

        Returns:
            int: The angle (in degrees) by which the transformation rotates the frame
                counterclockwise. The angle will be in range [-180, 180].
        r   r)  s    r"   ÚrotationzVideoFrame.rotation6  s   € ô $ DÓ)Ð)r$   c                 ób   — t        | j                  j                  t        j                  z  «      S )z+Is this frame an interlaced or progressive?)Úboolr9   Úflagsr)   ÚAV_FRAME_FLAG_INTERLACEDr)  s    r"   Úinterlaced_framezVideoFrame.interlaced_frame@  s"   € ô �D—H‘H—N‘N¤S×%AÑ%AÑAÓBÐBr$   c                 ó.   — | j                   j                  S )z„Returns an integer that corresponds to the PictureType enum.

        Wraps :ffmpeg:`AVFrame.pict_type`

        :type: int
        ©r9   Ú	pict_typer)  s    r"   rK  zVideoFrame.pict_typeF  s   € ð �x‰x×!Ñ!Ð!r$   c                 ó&   — || j                   _        y r   rJ  ©r!   Úvalues     r"   rK  zVideoFrame.pict_typeP  ó   € à"ˆ�‰Õr$   c                 ó.   — | j                   j                  S )zKColorspace of frame.

        Wraps :ffmpeg:`AVFrame.colorspace`.

        ©r9   Ú
colorspacer)  s    r"   rR  zVideoFrame.colorspaceT  s   € ð �x‰x×"Ñ"Ð"r$   c                 ó&   — || j                   _        y r   rQ  rM  s     r"   rR  zVideoFrame.colorspace]  s   € à#ˆ�‰Õr$   c                 ó.   — | j                   j                  S )zMColor range of frame.

        Wraps :ffmpeg:`AVFrame.color_range`.

        ©r9   Úcolor_ranger)  s    r"   rV  zVideoFrame.color_rangea  s   € ð �x‰x×#Ñ#Ð#r$   c                 ó&   — || j                   _        y r   rU  rM  s     r"   rV  zVideoFrame.color_rangej  s   € à$ˆ�‰Õr$   c                 ó.   — | j                   j                  S )zWTransfer characteristic of frame.

        Wraps :ffmpeg:`AVFrame.color_trc`.

        ©r9   Ú	color_trcr)  s    r"   rZ  zVideoFrame.color_trcn  s   € ð �x‰x×!Ñ!Ð!r$   c                 ó&   — || j                   _        y r   rY  rM  s     r"   rZ  zVideoFrame.color_trcw  rO  r$   c                 ó.   — | j                   j                  S )zUColor primaries of frame.

        Wraps :ffmpeg:`AVFrame.color_primaries`.

        ©r9   Úcolor_primariesr)  s    r"   r^  zVideoFrame.color_primaries{  s   € ð �x‰x×'Ñ'Ð'r$   c                 ó&   — || j                   _        y r   r]  rM  s     r"   r^  zVideoFrame.color_primaries„  s   € à#(ˆ�‰Õ r$   c                 óx   — | j                   st        «       | _          | j                   j                  | g|¢­i |¤ŽS )a%  reformat(width=None, height=None, format=None, src_colorspace=None, dst_colorspace=None, interpolation=None, threads=None)

        Create a new :class:`VideoFrame` with the given width/height/format/colorspace.

        .. seealso:: :meth:`.VideoReformatter.reformat` for arguments.

        )ÚreformatterÚVideoReformatterÚreformat)r!   ÚargsÚkwargss      r"   rc  zVideoFrame.reformatˆ  s;   € ð ×ÒÜ/Ó1ˆDÔØ(ˆt×Ñ×(Ñ(¨Ð?°Ò?¸Ñ?Ð?r$   c                 ó*   —  | j                   dddi|¤ŽS )a
  Get an RGB version of this frame.

        Any ``**kwargs`` are passed to :meth:`.VideoReformatter.reformat`.

        >>> frame = VideoFrame(1920, 1080)
        >>> frame.format.name
        'yuv420p'
        >>> frame.to_rgb().format.name
        'rgb24'

        rK   r~   r\   )rc  )r!   re  s     r"   Úto_rgbzVideoFrame.to_rgb”  s   € ð ˆt�}‰}Ñ6 GÐ6¨vÑ6Ð6r$   Úfilepathc                 óþ  — |j                  d«      rd}n0|j                  d«      s|j                  d«      rd}nt        d«      ‚|rdnd}|rd	nd
}ddlm}  ||dddi¬«      5 }|j	                  ||¬«      }| j
                  |_        | j                  |_        |j                  |j                  | j                  |¬«      «      «       |j                  |j                  d«      «       ddd«       y# 1 sw Y   yxY w)zPSave a VideoFrame as a JPG or PNG.

        :param filepath: str | Path
        z.pngFz.jpgz.jpegTz"filepath must end with png or jpg.ÚmjpegÚpngr    r~   r   )ÚopenÚwÚupdater4   )r=   )Úpix_fmt)rK   N)
Úendswithrc   Úav.container.corerl  Ú
add_streamr@   rA   Úmuxr6   rc  )r!   rh  Úis_jpgÚencoderro  rl  ÚoutputÚoutput_streams           r"   ÚsavezVideoFrame.save¢  så   € ð ×Ñ˜VÔ$Ø‰FØ×Ñ˜vÔ&¨(×*;Ñ*;¸GÔ*DØ‰FäÐAÓBÐBá"(‘w¨eˆÙ%+‘z°ˆå*á�(˜C¨(°C¨Ô9ð 	3¸VØ"×-Ñ-¨g¸wÐ-ÓGˆMØ"&§*¡*ˆMÔØ#'§;¡;ˆMÔ à�J‰J�}×+Ñ+¨D¯M©MÀ¨MÓ,IÓJÔKØ�J‰J�}×+Ñ+¨DÓ1Ô2÷	3÷ 	3ñ 	3ús   Á$BC3Ã3C<c           	      óÒ  — ddl m}  | j                  d	ddi|¤Žj                  d   }|}|j                  }t        |«      }d}|j                  dz  }|j                  |z  }	t        |	«      }
|dk  r|j                  dz
  |z  nd}||	k  r)||||z    |
|||z    |dk  r||z  }n||z  }||z  }||	k  rŒ)|j                  d|j                  |j                  ft        |
«      dddd«      S )
z±Get an RGB ``PIL.Image`` of this frame.

        Any ``**kwargs`` are passed to :meth:`.VideoReformatter.reformat`.

        .. note:: PIL or Pillow must be installed.

        r   )ÚImagerK   r~   rÊ   rÇ   ÚRGBÚrawr\   )ÚPILrz  rc  r?  rõ   rô   r@   rA   Ú	bytearrayÚ	frombytesÚbytes)r!   re  rz  rî   rù   rõ   rû   rý   rþ   Úo_sizerü   rú   s               r"   Úto_imagezVideoFrame.to_image¾  s  € õ 	à)˜DŸM™MÑC°ÐC¸FÑC×JÑJÈ1ÑMˆà*/ˆØ %§¡ˆ	Ü"% i£.ˆà ˆØ"'§+¡+°¡/ˆØ %§¡¨xÑ 7ˆÜ$ VÓ,ˆð AJÈAÂ §¡¨qÑ 0°HÒ<ÐSTˆà�fŠnØ.3°E¸EÀHÑ<LÐ.MˆE�%˜% (Ñ*Ð+Ø˜1Š}Ø˜Ñ!‘à˜Ñ!�Ø�XÑˆEð �f‹nð �‰Ø�E—K‘K §¡Ð.´°e³¸eÀUÈAÈqó
ð 	
r$   c                 ó
  — | j                   j                  r®d|vrªt        j                  t        j                  t
        j                     | j                   j                  j                  «      }t        |«      }t        |j                  | j                   j                  | j                   j                  «      j                  |d<   t        |«      dkD  r | j                  di |¤Žn| }|j                   j                  rt!        d«      ‚ddl}|j$                  j                  }|j&                  }|t(        v �rH|dk(  rF|j                   j                  dz  dk(  sJ d«       ‚|j                   j                  dz  dk(  sJ d«       ‚t(        |   \  }}	t        |«      }
|
d	k(  rt+        |d   ||	«      }nš|j-                  |j                   j                  |j                   j                  |
f|	¬
«      }|j/                  d«      rddd	gt1        d|
«      ¢­}nt1        |
«      }t3        |«      D ]  \  }}t+        ||   ||	«      |dd…dd…|f<   Œ! t5        ||j7                  d«      «      }|s|dv r|j9                  |dd«      }|S |dv rÏ|j                   j                  dz  dk(  sJ d«       ‚|j                   j                  dz  dk(  sJ d«       ‚|j;                  t+        |d   «      j=                  d«      t+        |d	   «      j=                  d«      t+        |d   «      j=                  d«      g«      j=                  d|j                   j                  «      S |dk(  rÌ|j                   j                  dz  dk(  sJ d«       ‚|j                   j                  dz  dk(  sJ d«       ‚t+        |d   dd«      }t+        |d	   dd«      }t+        |d   dd«      }|j?                  |dd	¬«      }|j?                  |dd	¬«      }|r|jA                  |||gd¬«      S |jA                  |||gd¬«      S |dk(  r_t+        |d   «      }|jC                  |d	   d«      jE                  d«      j=                  dd	«      jG                  |jH                  «      }||fS |dk(  rn|j;                  t+        |d   «      j=                  d«      t+        |d	   d«      j=                  d«      g«      j=                  d|j                   j                  «      S t!        d|› d�«      ‚)aI  Get a numpy array of this frame.

        Any ``**kwargs`` are passed to :meth:`.VideoReformatter.reformat`.

        The array returned is generally of dimension (height, width, channels).

        :param bool channel_last: If True, the shape of array will be
            (height, width, channels) rather than (channels, height, width) for
            the "yuv444p" and "yuvj444p" formats.

        .. note:: Numpy must be installed.

        .. note:: For formats which return an array of ``uint16``, ``float16`` or ``float32``,
            the samples will be in the system's native byte order.

        .. note:: For ``pal8``, an ``(image, palette)`` tuple will be returned,
            with the palette being in ARGB (PyAV will swap bytes if needed).

        .. note:: For ``gbrp`` formats, channels are flipped to RGB order.

        rK   r   z2Cannot convert a hardware frame to numpy directly.Nr‰   rÈ   z width has to be even for yuyv422z!height has to be even for yuyv422rÇ   )r
  ÚgbrrÊ   Úbe¾   rˆ   r¡   >   r‡   Úyuv422pr    z$width has to be even for this formatz%height has to be even for this formatró   r¸   rÉ   ©Úaxisrx   Úi4ú>i4rw   z'Conversion to numpy array with format `ú` is not yet supportedr\   )%r9   r6  r   r'   r(   r)   rI   rJ   Údictr
   rL   r@   rA   r2  Úlenrc  rc   r  rK   r?  Ú_np_pix_fmt_dtypesr  ÚemptyÚ
startswithr÷   Ú	enumeraterí   rp  ÚmoveaxisÚhstackÚreshapeÚrepeatÚstackÚ
frombufferÚastypeÚviewrÆ   )r!   Úchannel_lastre  rT   r  r  Úformat_namer?  r  r
  Ú
num_planesrì   Úplane_indicesr  Úp_idxÚyÚur/   Úu_fullÚv_fullÚimageÚpalettes                         r"   Ú
to_ndarrayzVideoFrame.to_ndarrayã  s·  € ð, �8‰8×!Ò! h°fÑ&<Ü@FÇÁÜ—‘œs×4Ñ4Ñ5°t·x±x×7MÑ7M×7RÑ7RóAˆJô ˜&“\ˆFÜ/Ø×$Ñ$ d§h¡h§n¡n°d·h±h·o±oó ç‰dð �8Ñô 8;¸6³{ÀQ²˜M˜DŸM™MÑ3¨FÒ3ÈDˆØ�9‰9×"Ò"ÜÐQÓRÐRãð —l‘l×'Ñ'ˆØ).¯©ˆàÔ,Ò,Ø˜iÒ'Ø—y‘y—‘¨Ñ*¨aÒ/ÐSÐ1SÓSÐ/Ø—y‘y×'Ñ'¨!Ñ+¨qÒ0ÐUÐ2UÓUÐ0ä0°Ñ=‰OˆH�eÜ(+¨F«ˆJØ˜QŠÜ$ V¨A¡Y°¸%Ó@‘àŸ™Ø—Y‘Y×%Ñ% u§y¡y§¡¸
ÐCÈ5ð !ó �ð ×)Ñ)¨%Ô0Ø%&¨¨1Ð$D¬u°Q¸
Ó/CÑ$D‘Mä$)¨*Ó$5�MÜ )¨-Ó 8ò R‘H�A�uÜ%1°&¸±-ÀÈ5Ó%Q�Eš!šQ ˜'’NðRä" 5¨+×*>Ñ*>¸tÓ*DÓEˆEÙ KÐ3JÑ$JØŸ™ E¨1¨aÓ0�ØˆLð Ð<Ñ<Ø—9‘9—?‘? QÑ&¨!Ò+ÐSÐ-SÓSÐ+Ø—9‘9×#Ñ# aÑ'¨1Ò,ÐUÐ.UÓUÐ,Ø—9‘9ä  ¨¡Ó+×3Ñ3°BÓ7Ü  ¨¡Ó+×3Ñ3°BÓ7Ü  ¨¡Ó+×3Ñ3°BÓ7ðó÷ ‰g�b˜%Ÿ)™)Ÿ/™/Ó*ð+ð ˜-Ò'Ø—9‘9—?‘? QÑ&¨!Ò+ÐSÐ-SÓSÐ+Ø—9‘9×#Ñ# aÑ'¨1Ò,ÐUÐ.UÓUÐ,ä˜V A™Y¨¨8Ó4ˆAÜ˜V A™Y¨¨8Ó4ˆAÜ˜V A™Y¨¨8Ó4ˆAð —Y‘Y˜q !¨!�YÓ,ˆFØ—Y‘Y˜q !¨!�YÓ,ˆFÙØ—x‘x  F¨FÐ 3¸!�xÓ<Ð<Ø—8‘8˜Q ¨Ð/°a�8Ó8Ð8Ø˜&Ò Ü  ¨¡Ó+ˆEà—‘˜f Q™i¨Ó.ß‘˜“ß‘˜˜Q“ß‘�b—h‘h“ð	 ð ˜'�>Ð!Ø˜&Ò Ø—9‘9ä  ¨¡Ó+×3Ñ3°BÓ7Ü  ¨¡¨AÓ.×6Ñ6°rÓ:ðó÷
 ‰g�b˜%Ÿ)™)Ÿ/™/Ó*ð+ô Ø5°k°]ÐBXÐYó
ð 	
r$   c                 óx   — |j                   dk7  r|j                  d«      }t        || j                  d   d«       y)z6
        Update content from a ``PIL.Image``.
        r{  r   rÊ   N)ÚmodeÚconvertr	  r?  )r!   Úimgs     r"   Ú	set_imagezVideoFrame.set_imageR  s2   € ð �8‰8�uÒØ—+‘+˜eÓ$ˆCä˜C §¡¨Q¡°Õ3r$   c                 óv   — t        | j                  d   | j                  d   d«      }|j                  | «       |S )z9
        Construct a frame from a ``PIL.Image``.
        r   rÇ   r~   )rÒ   Úsizer«  )rª  r  s     r"   Ú
from_imagezVideoFrame.from_image[  s3   € ô
 ' s§x¡x°¡{°C·H±H¸Q±KÀÓIˆØ�‰˜Ôàˆr$   c                 ó*  — ddl }| j                  d   }|s| j                  d   }|dv rXt        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   f}�nù|d
v rXt        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   f}�n�|dv rXt        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   f}�nA|dv rXt        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   f}�nå|dv rXt        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   f}�n‰|dv rXt        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   f}�n-|dv rXt        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   f}�nÑ|dv r<t        | dd«       | j                  d   dk7  rt        d	«      ‚| j                  d   f}�n‘|dv r<t        | dd«       | j                  d   dk7  rt        d	«      ‚| j                  d   f}�nQ|dv r<t        | dd«       | j                  d   dk7  rt        d	«      ‚| j                  d   f}�n|dv r}t        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   dz  | j                  d   dz  | j                  d   dz  f}�n�|dv r}t        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   dz  | j                  d   dz  | j                  d   dz  f}�n|dv r}t        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   dz  | j                  d   dz  | j                  d   dz  f}�nŽ|dv rŽt        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   dz  | j                  d   dz  | j                  d   dz  | j                  d   dz  f}�nü|d v rŽt        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   dz  | j                  d   dz  | j                  d   dz  | j                  d   dz  f}�nj|d!v r�t        | dd«       t        | | j                  d   dk(  «       | j                  dd dk7  rt        d	«      ‚| j                  d   dz  | j                  d   dz  | j                  d   dz  | j                  d   dz  f}nÙ|d"v rÆt        | dd«       t        | | j                  d   dz  dk(  «       t        | | j                  d   dz  dk(  «       |d#z  dz  }| j                  d   dk7  rt        d	«      ‚|d$v r3| j                  d   | j                  d   dz  | j                  d   dz  f}n.| j                  d   | j                  d   f}nt        d%|› d&�«      ‚|j                  d'«      r*|j                  |j                  | d(g d)¢f   d*d«      «      } n:|j                  d+«      r)|j                  |j                  | d(g d,¢f   d*d«      «      } t        t        «      }|j                  | ||||«       |S )-aÇ  
        Construct a frame from a numpy buffer.

        :param int width: optional width of actual image, if different from the array width.

        .. note:: For formats which expect an array of ``uint16``, ``float16`` or ``float32``,
            the samples must be in the system's native byte order.

        .. note:: for ``gbrp`` formats, channels are assumed to be given in RGB order.

        .. note:: For formats where width of the array is not the same as the width of the image,
        for example with yuv420p images the UV rows at the bottom have padding bytes in the middle of the
        row as well as at the end. To cope with these, callers need to be able to pass the actual width.
        r   NrÇ   ¾   r{   r~   rÆ   rÊ   rÈ   )rÊ   rÇ   z.provided array does not have C_CONTIGUOUS rows¾   r   r€   r…   r†   rÉ   )rË   rÈ   ¾   rž   rŸ   rÍ   )rÐ   rÅ   >   rq   rr   rt   rz   rÅ   )rÅ   rÇ   ¾   rŠ   r‹   rœ   r�   )rÌ   rÈ   ¾   r®   r¯   rÎ   ¾   r°   r±   )rÏ   rÅ   >   rs   rv   ry   r}   r´   rµ   r¶   r·   >   rƒ   r„   r”   r•   r–   r—   r˜   r™   rš   r›   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   >   r¬   r­   >   ru   >
   r�   r‚   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   >   rª   r«   >   r|   >   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   >   r²   r³   >   rw   r‡   r    rË   ¾   r‡   r    ú)Conversion from numpy array with format `rŒ  r|   .)rÇ   rÈ   r   rÊ   ró   ru   )rÇ   rÈ   r   )r  r  r   r  r  rc   r‘  Úascontiguousarrayr“  rÒ   rÓ   Ú_image_fill_pointers_numpy)rì   rK   r@   r  rA   Ú	linesizesr  s          r"   Úfrom_numpy_bufferzVideoFrame.from_numpy_buffere  sf  € ó  	à—‘˜Q‘ˆÙØ—K‘K ‘NˆEàÐ'Ñ'Ü˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  FÒ*Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØÐCÑCÜ˜% ¨1Ô-Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  FÒ*Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØÐ/Ñ/Ü˜% ¨AÔ.Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  GÒ+Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØÐ7Ñ7Ü˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  FÒ*Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØÐGÑGÜ˜% ¨1Ô-Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  FÒ*Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØÐ1Ñ1Ü˜% ¨AÔ.Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  FÒ*Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØÐ1Ñ1Ü˜% ¨AÔ.Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  GÒ+Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØð 	
ñ 	
ô ˜% ¨!Ô,Ø�}‰}˜QÑ 1Ò$Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØð 
ñ 
ô( ˜% ¨1Ô-Ø�}‰}˜QÑ 1Ò$Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØÐ1Ñ1Ü˜% ¨AÔ.Ø�}‰}˜QÑ 1Ò$Ü Ð!QÓRÐRØŸ™ qÑ)Ð+ŠIØ�xÑÜ˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  FÒ*Ü Ð!QÓRÐRà—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%ðŠIð
 ð 
ñ 
ô ˜% ¨1Ô-Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  FÒ*Ü Ð!QÓRÐRà—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%ðŠIð
 Ð1Ñ1Ü˜% ¨AÔ.Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  GÒ+Ü Ð!QÓRÐRà—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%ðŠIð
 �yÑ Ü˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  FÒ*Ü Ð!QÓRÐRà—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%ð	ŠIð ð 	
ñ 	
ô ˜% ¨1Ô-Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  FÒ*Ü Ð!QÓRÐRà—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%ð	ŠIð Ð3Ñ3Ü˜% ¨AÔ.Ü  u§{¡{°1¡~¸Ñ':Ô;Ø�}‰}˜Q˜RÐ  GÒ+Ü Ð!QÓRÐRà—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%Ø—‘˜aÑ  AÑ%ð	‰Ið Ð6Ñ6Ü˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?Ø˜q‘[ 1‘_ˆFØ�}‰}˜QÑ 1Ò$Ü Ð!QÓRÐRØÐ0Ñ0ð —M‘M !Ñ$Ø—M‘M !Ñ$¨Ñ)Ø—M‘M !Ñ$¨Ñ)ð‘	ð #Ÿ]™]¨1Ñ-¨u¯}©}¸QÑ/?Ð@‘	äØ;¸F¸8ÐCYÐZóð ð ×Ñ˜WÔ%Ø×(Ñ(¨¯©°U¸3ÂÐ;LÑ5MÈrÐSTÓ)UÓV‰EØ×Ñ˜vÔ&Ø×(Ñ(¨¯©°U¸3Â	¸>Ñ5JÈBÐPQÓ)RÓSˆEäÔ1Ó2ˆØ×(Ñ(¨°°v¸yÈ&ÔQØˆr$   c           	      óV  — |j                   j                  }t        j                  t        j                  t
           |«      }t        |«      }t        j                  | j                  «       || j                  _
        || j                  _        || j                  _        t        |«      D ]  \  }	}
|
| j                  j                  |	<   Œ  t        t        j                   | j                  j                  t        j                  t        j"                  | j                  j                  «      | j                  j                  || j                  j                  «      «      }t        j                  t$        |«      }t'        |«       t        j(                  ||t*        t        j                  t        j,                  |«      d«      | j                  j.                  d<   | j                  j.                  d   t        j0                  k(  rt3        |«       t5        d«      ‚| j7                  «        y )Nr   zav_buffer_create failed)ÚctypesrJ   r   r'   r(   r   r	   r)   r+  r9   rK   r@   rA   r’  r  r   Úav_image_fill_pointersr[   ro   r   Úav_buffer_createrp   Úp_voidÚbufr   r   rG   r&  )r!   r  r@   rA   rº  rK   Úc_dataÚc_ptrr"  r  r  ÚrequiredÚpy_bufs                r"   r¹  z%VideoFrame._image_fill_pointers_numpyB  s�  € ð" %+§M¡M×$6Ñ$6ˆÜ)/¯©´V·^±^ÄGÑ5LÈfÓ)UˆÜ&1°&Ó&9ˆÜ×Ñ˜4Ÿ8™8Ô$ð #ˆ�‰ŒØˆ�‰ŒØ ˆ�‰ŒÜ$ YÓ/ò 	,‰KˆAˆxØ#+ˆD�H‰H×Ñ˜aÒ ð	,ô Ü×&Ñ&Ø—‘—‘Ü—‘œC×-Ñ-¨t¯x©x¯©Ó?Ø—‘—‘ØØ—‘×!Ñ!óó
ˆô —‘œV VÓ,ˆÜ�&Ôä×.Ñ.ØØÜ Ü�K‰KœŸ™ vÓ.Øó
ˆ�‰�‰�Q‰ð �8‰8�<‰<˜‰?œfŸk™kÒ)Ü�fÔÜÐ7Ó8Ð8à×"Ñ"Õ$r$   c           	      óÖ  — ddl }i dd“dd“dd“dd“d	d“d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“i dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d#“d%d#“d&d#“d'd#“d(d#“d)d#“d*d#“d+d#“¥i d,d#“d-d.“d/d.“d0d“d1d“d2d“d3d“d4d“d5d“d6d“d7d“d8d“d9d“d:d“d;d“d<d=“d>d=“¥dd!d#d#ddd!d?œ¥j                  |d@«      \  }}}|��4| j                  dAk(  r| dd…dd…df   } t        | |dB«       |s|dCv r|j	                  | ddA«      } t        | | j                  dA   |k(  «       t        | |j                  dD«      «      } t        | j                  dE   | j                  d   |«      }|j                  j                  j                  dF«      r:|j                  | dd…dd…dEdB…f   | dd…dd…ddE…f   | dd…dd…dBd…f   gdA¬G«      } t        |«      D ]&  }t        | dd…dd…|f   |j                   |   |«       Œ( |S |dHk(  rÅ| \  } }	t        | dIdA«       t        |	dIdA«       t        |	|	j                  dJk(  «       t        | j                  dE   | j                  d   |«      }t        | |j                   d   dE«       |j                   dE   j#                  |	j%                  dK«      j'                  dL«      j)                  «       «       |S |dMv �rt        | dIdA«       t        | | j                  d   dBz  dk(  «       t        | | j                  dE   dAz  dk(  «       t        | j                  dE   | j                  d   dAz  dBz  |«      }|j*                  |j,                  z  }
dN|
z  dOz  }| j/                  dP«      }t        |d|
 |j                   d   dE«       t        ||
| |j                   dE   dE«       t        ||d |j                   dA   dE«       |S |dQk(  �r t        | dIdA«       t        | | j                  d   dOz  dk(  «       t        | | j                  dE   dAz  dk(  «       t        | j                  dE   | j                  d   dAz  |«      }|j*                  |j,                  z  }
|
|
dAz  z   }| j/                  dP«      }t        |d|
 |j                   d   dE«       t        ||
| |j                   dE   dE«       t        ||d |j                   dA   dE«       |S |dRk(  �rBt1        | |j2                  «      r| j4                  |j6                  k7  rt9        dS«      ‚|r&| j                  dA   dBk(  r|j	                  | dAd«      } n| j                  d   dBk(  st9        dT«      ‚| j                  dEd \  }}|dAz  dk7  s|dAz  dk7  rt9        dU«      ‚t        |||«      }t        | d   |j                   d   dA«       | dEdd…dddA…f   j;                  «       }| dAdd…dddA…f   j;                  «       }t        ||j                   dE   dA«       t        ||j                   dA   dA«       |S |dVk(  rit        | dIdB«       t        | | j                  d   dAz  dk(  «       t        | | j                  dE   dAz  dk(  «       t        | | j                  dA   dAk(  «       �ný|dWv r+t        | dIdB«       t        | | j                  dA   dBk(  «       �nÎ|dXv r+t        | dIdB«       t        | | j                  dA   dOk(  «       �nŸ|dYv r…t        | dZdB«       t        | | j                  dA   dBk(  «       t        | j                  dE   | j                  d   |«      }t        t        | |j                  dD«      «      |j                   d   d[«       |S |d\v r…t        | d]dB«       t        | | j                  dA   dBk(  «       t        | j                  dE   | j                  d   |«      }t        t        | |j                  dD«      «      |j                   d   d^«       |S |d_v r…t        | dZdB«       t        | | j                  dA   dOk(  «       t        | j                  dE   | j                  d   |«      }t        t        | |j                  dD«      «      |j                   d   d`«       |S |dav r…t        | dbdB«       t        | | j                  dA   dOk(  «       t        | j                  dE   | j                  d   |«      }t        t        | |j                  dD«      «      |j                   d   d`«       |S |dcv r…t        | d]dB«       t        | | j                  dA   dOk(  «       t        | j                  dE   | j                  d   |«      }t        t        | |j                  dD«      «      |j                   d   dd«       |S |dek(  rÞt        | dIdA«       t        | | j                  d   dBz  dk(  «       t        | | j                  dE   dAz  dk(  «       t        | j                  dE   | j                  d   dAz  dBz  |«      }|j*                  |j,                  z  }| j/                  dP«      }t        |d| |j                   d   dE«       t        ||d |j                   dE   dA«       |S t9        df|› dg�«      ‚t        | j                  dE   | j                  d   |«      }t        | |j                   d   | j                  dAk(  rdE«       |S | j                  dA   «       |S )ha¥  
        Construct a frame from a numpy array.

        :param bool channel_last: If False (default), the shape for the yuv444p and yuvj444p
            is given by (channels, height, width) rather than (height, width, channels).

        .. note:: For formats which expect an array of ``uint16``, ``float16`` or ``float32``,
            the samples must be in the system's native byte order.

        .. note:: for ``pal8``, an ``(image, palette)`` pair must be passed. `palette` must
            have shape (256, 4) and is given in ARGB format (PyAV will swap bytes if needed).

        .. note:: for ``gbrp`` formats, channels are assumed to be given in RGB order.

        r   Nr½   )rÇ   rÈ   rÉ   r¾   r´   )rÇ   rÇ   rÆ   r¿   rÀ   rµ   rÁ   rÂ   r¶   rÃ   rÄ   r·   rs   r|   )rÅ   rÇ   rÆ   r¢   )rÅ   rÈ   rÉ   r£   r¤   r¥   r¦   r§   r¨   r©   r²   )rÅ   rÅ   rÍ   r³   ru   )rÊ   rÇ   rÆ   rŒ   )rÊ   rÈ   rÉ   r�   rŽ   r�   r�   r‘   r’   r“   r�   r‚   rª   )rÊ   rÅ   rÍ   r«   rv   r”   r•   r–   r—   r˜   r™   rš   r›   r}   rƒ   r„   r¬   )rÇ   rÅ   rÍ   r­   )ry   rˆ   r¹   rº   r»   r¼   r¡   )NNNrÈ   rÊ   r†  r…  rÇ   r„  rˆ  rx   rÆ   )é   rÅ   r‹  rŠ  r¶  é   rÅ   ró   r‡  r¸   zArray must be uint16 typez>Array must have shape (3, height, width) or (height, width, 3)zWidth and height must be evenr‰   r°  >   rq   rr   rt   rz   r±  rÉ   rË   r²  rÍ   rÐ   r³  rÌ   r´  rÎ   rµ  rÏ   rw   r·  rŒ  )r  rE   Úndimr   r“  r  r  rí   rp  rÒ   rK   r2  r‘  Úconcatenater÷   r	  r?  rn  rš  r™  r  r@   rA   r•  Ú
isinstancer  r
  rÉ   rc   Úcopy)rì   rK   r›  r  r  r  r
  r  r  r¥  Úu_startÚv_startÚflatrA   r@   r¡  r/   Úuv_starts                     r"   Úfrom_ndarrayzVideoFrame.from_ndarrayy  sW  € ó" 	ð;%
ØÐ.ð;%
àÐ.ð;%
ð ˜?ð;%
ð Ð.ð	;%
ð
 Ð.ð;%
ð ˜?ð;%
ð Ð.ð;%
ð Ð.ð;%
ð ˜?ð;%
ð Ð.ð;%
ð Ð.ð;%
ð ˜?ð;%
ð �Oð;%
ð �_ð;%
ð Ð)ð;%
ð  Ð)ð!;%
ð" Ð)ñ#;%
ð$ Ð)ð%;%
ð& Ð)ð';%
ð( Ð)ð);%
ð* Ð)ð+;%
ð, Ð)ð-;%
ð. Ð+ð/;%
ð0 Ð+ð1;%
ð2 �Oð3;%
ð4 Ð(ð5;%
ð6 Ð(ð7;%
ð8 Ð(ð9;%
ð: Ð(ð;;%
ð< Ð(ð=;%
ð> Ð(ð?;%
ð@ Ð(ðA;%
ðB Ð(ðC;%
ðD Ð'òE;%
ðF Ð'ðG;%
ðH Ð*ðI;%
ðJ Ð*ðK;%
ðL �OðM;%
ðN Ð(ðO;%
ðP Ð(ðQ;%
ðR Ð(ðS;%
ðT Ð(ðU;%
ðV Ð(ðW;%
ðX Ð(ðY;%
ðZ Ð(ð[;%
ð\ Ð(ð];%
ð^ �_ð_;%
ð` Ð'ða;%
ðb Ð'ðc;%
ðd Ð*ðe;%
ðf Ð*ñg;%
ðh $Ø&Ø+Ø+Ø,Ø,Ø'òu;%
÷v ‰#ˆfÐ(Ó
)ñw 	"ˆ�(˜Eðx ÑØ�z‰z˜QŠØša¢ D˜jÑ)�Ü˜% ¨Ô*Ù FÐ.EÑ$EØŸ™ E¨1¨aÓ0�Ü  u§{¡{°1¡~¸Ñ'AÔBÜ" 5¨&¯/©/¸$Ó*?Ó@ˆEÜ˜uŸ{™{¨1™~¨u¯{©{¸1©~¸vÓFˆEØ�|‰|× Ñ ×+Ñ+¨EÔ2ØŸ™àša¢ A a C˜iÑ(Øša¢ A a C˜iÑ(Øša¢ A¡B˜h™ðð
 ð 'ó �ô ˜8“_ò O�Ü# Eª!ªQ°¨'¡N°E·L±LÀ±OÀXÕNðOàˆLð �VÒØ"‰NˆE�7Ü˜% ¨!Ô,Ü˜' 7¨AÔ.Ü ¨¯©¸(Ñ)BÔCä˜uŸ{™{¨1™~¨u¯{©{¸1©~¸vÓFˆEÜ  u§|¡|°A¡¸Ô:Ø�L‰L˜‰O×"Ñ" 7§<¡<°Ó#6×#=Ñ#=¸dÓ#C×#KÑ#KÓ#MÔNØˆLØÐ.Ò.Ü˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?ä˜uŸ{™{¨1™~°·±¸A±ÀÑ0BÀqÑ/HÈ&ÓQˆEØ—k‘k E§L¡LÑ0ˆGØ˜'‘k QÑ&ˆGØ—=‘= Ó$ˆDÜ  Q w °·±¸a±À!ÔDÜ  W¨WÐ 5°u·|±|ÀA±ÈÔJÜ  W X °·±¸Q±ÀÔCØˆLØ�yÓ Ü˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?ä˜uŸ{™{¨1™~¨u¯{©{¸1©~ÀÑ/BÀFÓKˆEØ—k‘k E§L¡LÑ0ˆGØ ¨1¡Ñ,ˆGØ—=‘= Ó$ˆDÜ  Q w °·±¸a±À!ÔDÜ  W¨WÐ 5°u·|±|ÀA±ÈÔJÜ  W X °·±¸Q±ÀÔCØˆLØ�}Ó$Ü˜e R§Z¡ZÔ0°E·K±KÀ2Ç9Á9Ò4LÜ Ð!<Ó=Ð=ñ  §¡¨A¡°!Ò 3ØŸ™ E¨1¨aÓ0‘Ø—k‘k !‘n¨Ò)Ü ØTóð ð "ŸK™K¨¨˜O‰MˆF�EØ�q‰y˜AŠ~ ¨!¡¨q¢Ü Ð!@ÓAÐAä˜u f¨fÓ5ˆEÜ  a¡¨%¯,©,°q©/¸1Ô=à�aš™C˜a˜C�iÑ ×%Ñ%Ó'ˆAØ�aš™C˜a˜C�iÑ ×%Ñ%Ó'ˆAÜ  5§<¡<°¡?°AÔ6Ü  5§<¡<°¡?°AÔ6ØˆLØ�yÒ Ü˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?Ü  u§{¡{°1¡~¸Ñ':Ö;ØÐ)Ñ)Ü˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ':Ö;ØÐ7Ñ7Ü˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ':Ö;ØÐCÑCÜ˜% ¨1Ô-Ü  u§{¡{°1¡~¸Ñ':Ô;Ü˜uŸ{™{¨1™~¨u¯{©{¸1©~¸vÓFˆEÜÜ˜u f§o¡o°dÓ&;Ó<¸e¿l¹lÈ1¹oÈqôð ˆLØÐ/Ñ/Ü˜% ¨AÔ.Ü  u§{¡{°1¡~¸Ñ':Ô;Ü˜uŸ{™{¨1™~¨u¯{©{¸1©~¸vÓFˆEÜÜ˜u f§o¡o°dÓ&;Ó<¸e¿l¹lÈ1¹oÈrôð ˆLØÐGÑGÜ˜% ¨1Ô-Ü  u§{¡{°1¡~¸Ñ':Ô;Ü˜uŸ{™{¨1™~¨u¯{©{¸1©~¸vÓFˆEÜÜ˜u f§o¡o°dÓ&;Ó<¸e¿l¹lÈ1¹oÈqôð ˆLØÐ1Ñ1Ü˜% ¨AÔ.Ü  u§{¡{°1¡~¸Ñ':Ô;Ü˜uŸ{™{¨1™~¨u¯{©{¸1©~¸vÓFˆEÜÜ˜u f§o¡o°dÓ&;Ó<¸e¿l¹lÈ1¹oÈqôð ˆLØÐ1Ñ1Ü˜% ¨AÔ.Ü  u§{¡{°1¡~¸Ñ':Ô;Ü˜uŸ{™{¨1™~¨u¯{©{¸1©~¸vÓFˆEÜÜ˜u f§o¡o°dÓ&;Ó<¸e¿l¹lÈ1¹oÈrôð ˆLØ�vÒÜ˜% ¨!Ô,Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?Ü  u§{¡{°1¡~¸Ñ'9¸QÑ'>Ô?ä˜uŸ{™{¨1™~°·±¸A±ÀÑ0BÀqÑ/HÈ&ÓQˆEØ—{‘{ U§\¡\Ñ1ˆHØ—=‘= Ó$ˆDÜ  Y h °·±¸a±À!ÔDÜ  X Y °·±¸a±À!ÔDØˆLäØ;¸F¸8ÐCYÐZóð ô ˜5Ÿ;™; q™>¨5¯;©;°q©>¸6ÓBˆÜØ�5—<‘< ‘?¨¯©°qª Aô	
ð ˆð ?D¿k¹kÈ!¹nô	
ð ˆr$   rø   c                 óê   — t        |||«      }|dk(  rt        | |j                  d   d||«       |S |dv r1t        | |j                  d   |j                  d«      rdnd||«       |S t	        d|› d	�«      ‚)
Nrz   r   rÅ   >   r´   rµ   r¶   r·   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   Ú8rÇ   rÈ   zFormat 'z' is not supported.)rÒ   r  r?  rp  ÚNotImplementedError)rø   r@   rA   rK   rð   rñ   r  s          r"   Ú
from_byteszVideoFrame.from_bytesf  s—   € ô ˜5 &¨&Ó1ˆØ�VÒÜØ˜5Ÿ<™<¨™?¨A¨Àôð4 ˆð/ ð 
ñ 
ô  ØØ—‘˜Q‘Ø—_‘_ SÔ)‘¨qØØôð ˆô &¨°°Ð8KÐ&LÓMÐMr$   Nr   r   c           	      ó  — t        | t        t        f«      s| f} t        | «      dk7  rt	        d«      ‚t        |«      }t        d«      }	t        d«      }
t        d«      }||	|
|fvrt        d«      ‚||	k(  rdnd}|dk(  rd	nd}t        j                  }t        j                  }d }	 t        | d
   |«      }t        | d	   |«      }|j                  j                  }|j                  j                  }||k7  rt	        d«      ‚|t        t        fvrt        d«      ‚|j                  j                  }|j                  j                  }||k7  rt	        d«      ‚|t        k(  r|€|}n!||k7  rt	        d«      ‚|dvrt	        d«      ‚d
}|t        k(  r|d
k7  s|d
k7  rt	        d«      ‚|j                  j                  j                   d	k7  sF|j                  j                  j"                  |k7  s#|j                  j                  j$                  d	k7  rt'        d«      ‚|j                  j                  j                   d	k7  sF|j                  j                  j"                  |k7  s#|j                  j                  j$                  d	k7  rt'        d«      ‚|j                  j(                  dk7  rt	        d«      ‚t        j*                  t,        |j                  j.                  d
   «      }t        j*                  t,        |j                  j.                  d	   «      }|d
k(  r:|d
k(  r5t        j*                  t0        |«      }t        j*                  t0        |«      }n*|d
k(  s|d
k(  rt	        d«      ‚||k7  s||k7  rt	        d«      ‚|dz  s|dz  rt	        d«      ‚|j                  j2                  t        j                  k7  rY|j                  j2                  d	   d	k7  rt	        d«      ‚t        j*                  t,        |j                  j2                  d
   «      }nt        j*                  t,        |«      }t        j*                  t0        ||z  «      }t        j*                  t0        ||z  «      }|j                  j(                  }|dz  }|dk(  �rt        j*                  t0        |j                  j.                  d
   «      }t        j*                  t0        |j                  j.                  d	   «      }||k7  s||k7  rt	        d«      ‚|j                  j2                  t        j                  k7  rZ|j                  j2                  d	   d	k7  rt	        d«      ‚t        j*                  t,        |j                  j2                  d
   «      }�n”t        j*                  t,        |«      }�nx|dk(  �rgt        j*                  t0        |j                  j.                  d
   «      }t        j*                  t0        |j                  j.                  d	   «      }t        j*                  t0        |j                  j.                  d   «      } ||k7  s||dz  k7  s| dk7  rt	        d«      ‚|j                  j2                  t        j                  k7  ru|j                  j2                  d   d	k7  s|j                  j2                  d	   dk7  rt	        d«      ‚t        j*                  t,        |j                  j2                  d
   «      }n&t        j*                  t,        |«      }nt	        d«      ‚t        j*                  t0        ||z  «      }!t        j*                  t0        |!|dz  z  «      }"t5        «       }||j6                  _        ||j6                  _        |t        k(  rê|€t=        ||¬«      }#n�t        |t<        «      st'        d «      ‚t1        |j                  «      t1        |«      k7  rt	        d!«      ‚t?        |j@                  «      t?        |«      k7  rt	        d"«      ‚t        j*                  t<        |«      }#|#jC                  |||«      }$t        d#«      |j6                  _"        |$|j6                  _#        ||_$        |#|_%        n||j6                  _"        t        j*                  t        jL                  tN           |j                  jP                  «      t        j*                  t        jR                  |j                  jT                  «      z   }%t        j*                  t        jL                  tN           |j                  jP                  «      t        j*                  t        jR                  |j                  jT                  «      z   }&tW        jX                  |%|tZ        t        j*                  t        j\                  |«      d
«      |j6                  j^                  d
<   |j6                  j^                  d
   t        j                  k(  rta        d$«      ‚|%|j6                  jP                  d
<   ||j6                  jb                  d
<   t        j                  }tW        jX                  |&|"tZ        t        j*                  t        j\                  |«      d
«      |j6                  j^                  d	<   |j6                  j^                  d	   t        j                  k(  rta        d%«      ‚|&|j6                  jP                  d	<   |!|j6                  jb                  d	<   t        j                  }|je                  «        |S # tf        $ rk |�tW        jh                  |j6                  «       |t        j                  k7  r|jk                  |«       |t        j                  k7  r|jk                  |«       ‚ w xY w)&NrÈ   zHfrom_dlpack currently supports 2-plane formats only (nv12/p010le/p016le)s   nv12s   p010les   p016lez.from_dlpack supports nv12, p010le, p016le onlyrÌ   rÏ   rÇ   r   z,plane tensors must have the same device_typez.only CPU and CUDA DLPack tensors are supportedz-plane tensors must be on the same CUDA devicez4device_id does not match the DLPack tensor device_id)Nr   z#device_id must be 0 for CPU tensorsz+CPU DLPack tensors must have device_id == 0zunexpected dtype for plane 0zunexpected dtype for plane 1zplane 0 must be 2D (H, W)z+either specify both width/height or neitherz)plane 0 shape does not match width/heightz0width/height must be even for nv12/p010le/p016lez0plane 0 must be contiguous in the last dimensionz*plane 1 must have shape (H/2, W) for 2D UVz0plane 1 must be contiguous in the last dimensionrÊ   z/plane 1 must have shape (H/2, W/2, 2) for 3D UVz-unexpected UV plane strides for (H/2, W/2, 2)zplane 1 must be 2D or 3D)r   r   z"cuda_context must be a CudaContextzAcuda_context.device_id does not match the DLPack tensor device_idz3cuda_context.primary_ctx does not match primary_ctxrC   z#av_buffer_create failed for plane 0z#av_buffer_create failed for plane 1)6rË  r:  ÚlistrŽ  rc   r	   rÔ  r   r   rg   Ú	dl_tensorÚdevice_typer   r   r   r
  ÚcodeÚbitsÚlanesrb   rÉ  r'   r   r  rD   r  rÔ   r9   r@   rA   r   rE  r   rU   rK   r6  Ú
_device_idÚ	_cuda_ctxr(   r   rJ   r+   Úbyte_offsetr)   r¿  rl   rÀ  rÁ  rG   r  r&  rN   r+  rk   )'r?  rK   r@   rA   r^   r   r   Úcuda_contextr?   rw   Úp010leÚp016leÚexpected_bitsr  Úm0Úm1r  Ú	dev_type0Ú	dev_type1Údev0Údev1Úy_hÚy_wÚy_pitch_elemsÚ
y_linesizeÚy_sizeÚuv_ndimÚuv_h_expectedÚuv_hÚuv_wÚuv_pitch_elemsÚuv_w2Úuv_cÚuv_linesizeÚuv_sizeÚctxrS   Úy_ptrÚuv_ptrs'                                          r"   Úfrom_dlpackzVideoFrame.from_dlpack�  s	  € ô ˜&¤5¬$ -Ô0Ø�YˆFäˆv‹;˜!ÒÜØZóð ô %0°Ó$7ˆÜ˜7Ó#ˆÜ˜YÓ'ˆÜ˜YÓ'ˆà˜$ ¨Ð/Ñ/Ü%Ð&VÓWÐWà# tš^™°ˆØ%¨Ò*‘1°ˆä.4¯k©kˆÜ.4¯k©kˆØ ˆðp	Ü  ¨¡¨FÓ3ˆBÜ  ¨¡¨FÓ3ˆBàŸ™×0Ñ0ˆIØŸ™×0Ñ0ˆIØ˜IÒ%Ü Ð!OÓPÐPØ¤¬ Ñ-Ü)ØDóð ð —<‘<×)Ñ)ˆDØ—<‘<×)Ñ)ˆDØ�tŠ|Ü Ð!PÓQÐQØœEÒ!ØÐ$Ø $‘IØ $Ò&Ü$ØNóð ð  IÑ-Ü$Ð%JÓKÐKØ�	ØœDÒ  d¨a¢i°4¸1²9Ü Ð!NÓOÐOð —‘×"Ñ"×'Ñ'¨1Ò,Ø—<‘<×%Ñ%×*Ñ*¨mÒ;Ø—<‘<×%Ñ%×+Ñ+¨qÒ0äÐ >Ó?Ð?à—‘×"Ñ"×'Ñ'¨1Ò,Ø—<‘<×%Ñ%×*Ñ*¨mÒ;Ø—<‘<×%Ñ%×+Ñ+¨qÒ0äÐ >Ó?Ð?à�|‰|× Ñ  AÒ%Ü Ð!<Ó=Ð=ä—+‘+œg r§|¡|×'9Ñ'9¸!Ñ'<Ó=ˆCÜ—+‘+œg r§|¡|×'9Ñ'9¸!Ñ'<Ó=ˆCà˜Šz˜f¨škÜŸ™¤C¨Ó-�ÜŸ™¤S¨#Ó.‘Ø˜!’˜v¨š{Ü Ð!NÓOÐOà˜%’< 3¨&¢=Ü$Ð%PÓQÐQà�qŠy˜F QšJÜ Ð!SÓTÐTà�|‰|×#Ñ#¤v§{¡{Ò2Ø—<‘<×'Ñ'¨Ñ*¨aÒ/Ü$Ð%WÓXÐXÜ &§¡¬G°R·\±\×5IÑ5IÈ!Ñ5LÓ M‘ä &§¡¬G°UÓ ;�äŸ™¤S¨-¸(Ñ*BÓCˆJÜ—[‘[¤ j°6Ñ&9Ó:ˆFà—l‘l×'Ñ'ˆGØ" a™KˆMà˜!‹|Ü—{‘{¤3¨¯©×(:Ñ(:¸1Ñ(=Ó>�Ü—{‘{¤3¨¯©×(:Ñ(:¸1Ñ(=Ó>�Ø˜=Ò(¨D°EªMÜ$Ð%QÓRÐRØ—<‘<×'Ñ'¬6¯;©;Ò6Ø—|‘|×+Ñ+¨AÑ.°!Ò3Ü(ØNóð ô &,§[¡[´¸"¿,¹,×:NÑ:NÈqÑ:QÓ%R’Nä%+§[¡[´¸$Ó%?’NØ˜A“Ü—{‘{¤3¨¯©×(:Ñ(:¸1Ñ(=Ó>�ÜŸ™¤C¨¯©×);Ñ);¸AÑ)>Ó?�Ü—{‘{¤3¨¯©×(:Ñ(:¸1Ñ(=Ó>�Ø˜=Ò(¨E°e¸q±jÒ,AÀTÈQÂYÜ$Ð%VÓWÐWØ—<‘<×'Ñ'¬6¯;©;Ò6Ø—|‘|×+Ñ+¨AÑ.°!Ò3°r·|±|×7KÑ7KÈAÑ7NÐRSÒ7SÜ(ØKóð ô &,§[¡[´¸"¿,¹,×:NÑ:NÈqÑ:QÓ%R‘Nä%+§[¡[´¸%Ó%@‘Nä Ð!;Ó<Ð<ä Ÿ+™+¤c¨>¸HÑ+DÓEˆKÜ—k‘k¤# {°fÀ±kÑ'BÓCˆGä%Ó'ˆEØ#ˆE�I‰IŒOØ%ˆE�I‰IÔØœEÒ!ð  Ð'Ü%°	À{ÔS‘Cä% l´KÔ@Ü'Ð(LÓMÐMÜ˜<×1Ñ1Ó2´c¸)³nÒDÜ(Ø_óð ô ˜L×4Ñ4Ó5¼¸kÓ9JÒJÜ(ØQóð ô !Ÿ+™+¤k°<Ó@�Cà ×/Ñ/°¸¸vÓF�
Ü#.¨wÓ#7�—	‘	Ô Ø*4�—	‘	Ô'Ø#,�Ô Ø"%�•à#)�—	‘	Ô ä—K‘KÜ—‘œwÑ'¨¯©×):Ñ):óä—‘œFŸM™M¨2¯<©<×+CÑ+CÓDñEˆEô —[‘[Ü—‘œwÑ'¨¯©×):Ñ):óä—‘œFŸM™M¨2¯<©<×+CÑ+CÓDñEˆFô  #×3Ñ3Ø�vÔ4´f·k±kÄ&Ç-Á-ÐQSÓ6TÐVWó ˆE�I‰I�M‰M˜!Ñð �y‰y�}‰}˜QÑ¤6§;¡;Ò.Ü!Ð"GÓHÐHØ %ˆE�I‰I�N‰N˜1ÑØ$.ˆE�I‰I×Ñ˜qÑ!Ü—‘ˆBä"×3Ñ3ØØÜ%Ü—‘œFŸM™M¨2Ó.Øó ˆE�I‰I�M‰M˜!Ñð �y‰y�}‰}˜QÑ¤6§;¡;Ò.Ü!Ð"GÓHÐHØ &ˆE�I‰I�N‰N˜1ÑØ$/ˆE�I‰I×Ñ˜qÑ!Ü—‘ˆBà×'Ñ'Ô)ØˆLøäò 	ØÐ Ü×"Ñ" 5§9¡9Ô-Ø”V—[‘[Ò Ø—
‘
˜2”Ø”V—[‘[Ò Ø—
‘
˜2”Øð	ús   Â&i1l ìA4n)r   r   r‡   )F)r~   r   )r~   F)rz   FF)rw   r   r   NNTN),rV   rW   rX   r#   r   rZ   r)   r[   Úuintr!  r&  r1   r4  Úpropertyr?  r@   rA   rC  rH  rK  ÚsetterrR  rV  rZ  r^  rc  rg  Úccallro   rx  r‚  r¦  r«  Ústaticmethodr®  r»  r¹  rÑ  r€  rD   rÕ  ÚstrrE  rû  r\   r$   r"   rÒ   rÒ   Þ  sÖ  „ ó,ð ‡\�\ð%˜C×-Ñ-ð %°f·k±kð %È6Ï;É;ò %ó ð%ð$ ‡\�\ñ
ó ð
ò%ò
ð ñHó ðHð> ñó ðð ñó ðð ñ*ó ð*ð ñCó ðCð
 ñ"ó ð"ð ×Ññ#ó ð#ð ñ#ó ð#ð ×Ññ$ó ð$ð ñ$ó ð$ð ×Ññ%ó ð%ð ñ"ó ð"ð ×Ññ#ó ð#ð ñ(ó ð(ð ×Ññ)ó ð)ò
@ò7ð ‡\�\ð3˜Vò 3ó ð3ò6#
óJm
ò^4ð ñó ðð òZó ðZòx5%ðn òjó ðjðX ð
 ØØñ$Øð$àð$ð ò$ó ð$ðL ð ØØØØ $Ø ØñQàðQð ðQð ð	Qð ˜‘:ðQð òQó ñQr$   rÒ   )FÚsysÚenumr   r   Úcython.cimports.libavÚcimportsÚlibavr)   Úcython.cimports.av.dictionaryr   Úcython.cimports.av.errorr   Ú$cython.cimports.av.sidedata.sidedatar   Úcython.cimports.av.utilsr   Úcython.cimports.av.video.formatr	   r
   Úcython.cimports.av.video.planer   r   r   r   Úcython.cimports.cpython.excr   Ú!cython.cimports.cpython.pycapsuler   r   r   Úcython.cimports.cpython.refr   r   Úcython.cimports.libc.stdintr   r   ÚfinalÚcclassr   rZ   ro   r(   rg   r$  Ú	exceptvalrÀ  Úvoidrl   rp   rö   rÓ   Úsupported_np_pix_fmtsr�  r  r:  rü  r�  rÒ   rÔ   rÖ   rY   Ú	byteorderrê   Úinlinerí   r  r	  r  r  ÚFramer\   r$   r"   ú<module>r     s>  ðÛ 
Ý ã ß #Ð #Ý 4Ý .Ý EÝ 2ß Iß SÓ SÝ 3÷ñ ÷
 =ß 8ð ‡�Ø‡�÷`ð `ó ó ð`ðF ‡�ð˜ð ¨ð °F·N±NÀ?Ñ4Sò ó ðð8 ‡�Ø‡�Ø€×Ñ˜Ôð!Ø�M‰Mð!à
�.‰.˜Ñ
!ð!ð ‡[�[ò!ó ó ó ð!ð ‡�Ø‡�Ø€×Ñ˜Ôð3Ø�M‰Mð3à
�.‰.˜Ñ
!ð3ð ‡[�[ò3ó ó ó ð3ð (˜Ÿ™¨±³Ó9Ð òUÐ ðr $�V—^‘^Øˆˆe�F—K‘K Ð$Ñ%Ð	%Ñ&ðPØ�ðPà�ðPð 	�|ðPð 	�|ð	Pð
 	�|ðPð 	�|ðPð 	˜-ðPð 	˜-ðPð 	˜-ðPð 	˜-ðPð 	˜-ðPð 	˜-ðPð 	˜-ðPð 	˜-ðPð 	�ðPð  	�=ð!Pð" 	�=ñ#Pð$ 	�ð%Pð& 	�ð'Pð( 	�Mð)Pð* 	�Mð+Pð, 	�ð-Pð. 	�]ð/Pð0 	�]ð1Pð2 	�]ð3Pð4 	�]ð5Pð6 	�]ð7Pð8 	�]ð9Pð: 	�]ð;Pð< 	�]ð=Pð> 	�nð?Pð@ 	�nðAPðB 	�ðCPðD 	�MòEPðF 	�MðGPðH 	�MðIPðJ 	�MðKPðL 	�MðMPðN 	�MðOPðP 	�MðQPðR 	�MðSPðT 	�=ðUPðV 	�=ðWPðX 	�^ðYPðZ 	�^ð[Pð\ 	�ð]Pð^ 	�Mð_Pð` 	�MðaPðb 	�MðcPðd 	�MðePðf 	�MògPðh 	�MðiPðj 	�MðkPðl 	�MðmPðn 	�ðoPðp 	�=ðqPðr 	�=ðsPðt 	�^ðuPðv 	�^ðwPðx 	�ðyPðz 	�=ð{Pð| 	�=ð}Pð~ 	�ðPð@ 	�ðAPðB 	�MðCPðD 	�MðEPðF 	�^ðGPðH 	�^ñIPðJ %Ø$Ø#Ø#ØØ$Ø$Ø%Ø%Ø Øò_PóSÐ ðl ‡�ð.˜:ò .ó ð.ô �'ô  ð  �—‘ §¡¨S¯]©]¸eÑ-CÓD€ð ‡�Ø‡�ð f§k¡kò ó ó ðð ‡�ð%àð%ð —[‘[ð%ð —[‘[ð	%ð
 —;‘;ò%ó ð%ðP ‡�ðH jð HÀ6Ç;Á;ò Hó ðHð
 ‡�Ø‡�àFMñMØðMØ(.¯©ðMØ@CòMó ó ðMðD ‡�ðJ˜vð J¨6¯;©;ò Jó ðJð
 ‡�Ø‡�ô�ó ó ó ñr$   