
    ybj4                        S SK r S SKJs  Jr  S SKJr  S SKJrJ	r	J
r
  S SKJr  S SKJrJr  S SKJr  S SKJrJrJr  S SKJrJr  \ R2                  \ R4                   " S	 S
\5      5       5       r\ R:                  \ R<                  \ R>                  " SS9S\ R@                  \!   S\ RD                  4S j5       5       5       r#\ R:                  \ R>                  " SS9S\$S\ RD                  4S j5       5       r%g)    N)	err_check)VideoFormatComponentget_pix_fmtget_video_format)
VideoFrame)PyBUF_WRITABLEPyBuffer_FillInfo)	Py_buffer)PyCapsule_GetPointerPyCapsule_IsValidPyCapsule_New)freemallocc                   ,   \ rS rSrS\S\R                  4S jr\R                  S\R                  4S j5       r
\S 5       r\R                  S\R                  4S j5       rS	\R                  \   S
\R                  4S jrS rSS.S\S-  4S jjrSrg)
VideoPlane   frameindexc                 |   UR                   nUR                  R                  (       a  [        R                  " [        R
                  [        R                     UR                  R                  R                  5      n[        UR                  UR                  R                  UR                  R                  5      nUS:X  a&  UR                  S:X  a  SU l        SU l        SU l        g [        UR                  R                   5       HY  nUR                  R"                  U   R$                  U:X  d  M,  ['        X55      nUR                  U l        UR                  U l          O   [)        SU SU< 35      e[+        U R,                  R                  R.                  U R0                     5      U R                  -  U l        g )N   pal8   i   zcould not find plane z of )formatptrhw_frames_ctxcythoncastpointerlibAVHWFramesContextdatar   	sw_formatwidthheightnamebuffer_sizerangenb_componentscompplaner   RuntimeErrorabsr   linesizer   )selfr   r   fmt
frames_ctxi	components          ڊ/tmp/claude-0/-home-danvics-docker-quiz/c1e0577a-e42c-4a3d-b1ea-3edd61103a4e/scratchpad/stt/lib/python3.13/site-packages/av/video/plane.py	__cinit__VideoPlane.__cinit__   sE   ll99""@Fs445uyy7N7N7S7SAJ #$$eiioouyy7G7GC A:#((f,DJDK&Dsww,,-Aww||A$$-08	&__
'.. . !6ugT#IJJ
 tzz~~66tzzBCdkkQ    returnc                     U R                   $ )N)r&   r.   s    r3   _buffer_sizeVideoPlane._buffer_size6   s    r6   c                 \    U R                   R                  R                  U R                     $ )z6
Bytes per horizontal line in this plane.

:type: int
)r   r   r-   r   r9   s    r3   	line_sizeVideoPlane.line_size:   s!     zz~~&&tzz22r6   c                 P    U R                   R                  R                  (       a  gg)NFT)r   r   r   r9   s    r3   _buffer_writableVideoPlane._buffer_writableC   s    ::>>''r6   viewflagsc                    U R                   R                  R                  (       a  [        S5      eU[        -  (       a   U R                  5       (       d  [        S5      eU R                  5       nU R                   R                  R                  U R                     nUS:  a:  U R                  n[        R                  " [        R                  U5      US-
  U-  -   n[        XX0R                  5       SU5        g )NzyHardware frame planes do not support the Python buffer protocol. Use DLPack (__dlpack__) or download to a software frame.zbuffer is not writabler   r   )r   r   r   	TypeErrorr   r@   
ValueError_buffer_ptrr-   r   r$   r   r   p_charr	   r:   )r.   rB   rC   r   r=   r$   s         r3   __getbuffer__VideoPlane.__getbuffer__I   s    ::>>''K  >!$*?*?*A*A566!--/ $

 7 7

 C	q=!%F++fmmS1VaZ94LLC$c+<+<+>5Ir6   c                 J   U R                   R                  R                  (       aw  [        R                  " [
        R                  U R                   R                  R                  5      [        S5      :w  a  [        S5      e[        U R                   R                  4$ [        S4$ )N   cuda4DLPack export is only implemented for CUDA hw framesr   )r   r   r   r   r   r   AVPixelFormatr   r   NotImplementedErrorkCuda
_device_idkCPUr9   s    r3   __dlpack_device__VideoPlane.__dlpack_device__Z   sx    ::>>''{{3,,djjnn.C.CDI  *J  4::0011ayr6   N)streamrU   c          	         U R                   R                  R                  S   [        R                  :X  a  [        S5      eU R                   R                  R                  (       a  [        R                  " [        R                  U R                   R                  R                  5      [        S5      :w  a  [        S5      eUb  [        S5      e[        R                  " [        R                  [        R                     U R                   R                  R                  R                  5      nUR                   n["        nU R                   R$                  nOK[        R                  " [        R                  U R                   R                  R                  5      n[&        nSnU R(                  nUS:  a  [        S5      e[        S5      n[        S5      n[        S	5      n	[        R*                  " [        R,                  5      u  pn[        R*                  " [.        5      u  pn[        R*                  " [.        5      u  nnnX7:X  a  S
nSnU R0                  S:X  aH  Sn
U R                   R                  R2                  nU R                   R                  R4                  nUnS
nGOU R0                  S
:X  aR  Sn
U R                   R                  R2                  S-  nU R                   R                  R4                  S-  nSnUnSnS
nGO/[7        S5      eX8:X  d  X9:X  a  SnSnXl-  (       a  [7        S5      eU R0                  S:X  aJ  Sn
U R                   R                  R2                  nU R                   R                  R4                  nXl-  nS
nGOU R0                  S
:X  aT  Sn
U R                   R                  R2                  S-  nU R                   R                  R4                  S-  nSnXl-  nSnS
nGOD[7        S5      eU[&        :w  a  [        S5      e[        R8                  " U5      nU[        R                  :X  a  [        S5      eUR:                  [        R<                  [        R>                  -  [        R@                  -  -  (       a  [        S5      eSnSn[C        URD                  5       H  nURF                  U   RH                  U R0                  :w  a  M,  US:X  a  URF                  U   RJ                  nOK[        R                  " [        R,                  URF                  U   RJ                  5      U:w  a  [        S5      eUS
-  nM     US:X  a  [7        SU R0                   S35      eUU-  (       a  [        S5      eUU-  nUS
:w  a  US:w  a  [        S5      eUS:X  a-  UR:                  [        RL                  -  (       a  [        S5      eUS-  nXl-  (       a  [7        S5      eUS
:X  a!  Sn
U R2                  nU R4                  nXl-  nS
nO$Sn
U R2                  nU R4                  nUnXl-  nUnS
n[        RN                  " 5       nU[        R                  :X  a  [Q        S5      e[S        [        RT                  " UU R                   R                  5      5        [        R                  " [        R                  [.           [W        U
[        RX                  " [.        5      -  5      5      n[        R                  " [        R                  [.           [W        U
[        RX                  " [.        5      -  5      5      nU[        R                  :X  d  U[        R                  :X  as  U[        R                  :w  a  [[        U5        U[        R                  :w  a  [[        U5        [        R\                  " [        R^                  " U5      5        [Q        S5      eU
S:X  a  UUS'   UUS
'   UUS'   UUS
'   OUUS'   UUS
'   UUS'   UUS'   UUS
'   UUS'   [        R                  " [        R                  [        R`                     [W        S[        RX                  " [        R`                  5      -  5      5      nU[        R                  :X  aK  [[        U5        [[        U5        [        R\                  " [        R^                  " U5      5        [Q        S5      e[        R                  " [        R`                  U5      US'   [        R                  " [        R`                  U5      US
'   [        R                  " [        R`                  U5      US'   [        R                  " [        R                  [b           [W        [        RX                  " [b        5      5      5      nU[        R                  :X  aV  [[        U5        [[        U5        [[        U5        [        R\                  " [        R^                  " U5      5        [Q        S5      e[        R                  " [        R`                  UR                  U R0                     5      URd                  l        UURd                  l3        UURd                  l4        U
URd                  l5        [m        S
US
S9URd                  l7        UURd                  l8        UURd                  l9        SURd                  l:        [        R                  " [        R`                  U5      Ul;        [x        Ul=         [}        [        R                  " [        R`                  U5      S[~        5      nU$ ! [         a    [y        U5        e f = f)Nr   zBDLPack export requires a refcounted AVFrame (frame.buf[0] is NULL)rL   rM   ziCUDA stream synchronization is not supported. Pass stream=None and synchronize before calling __dlpack__.z4negative linesize is not supported for DLPack exports   nv12s   p010les   p016ler            zinvalid plane index for NV12   z linesize is not aligned to dtypez!invalid plane index for P010/P016z'unsupported sw_format for DLPack exportz&unknown pixel format for DLPack exportzIbitstream, palette, and Bayer formats are not supported for DLPack exportz7mixed component step is not supported for DLPack exportzplane z has no componentsz/unsupported component packing for DLPack exportz=only 8- and 16-bit components are supported for DLPack exportz6big-endian formats are not supported for DLPack exportzav_frame_alloc() failedzmalloc() failed)codebitslanes   dltensor)Ar   r   bufr   NULLrE   r   r   r   rN   r   r   rO   r   r    r!   r"   rP   rQ   rR   r=   declareintint64_tr   r$   r#   rF   av_pix_fmt_desc_getrC   AV_PIX_FMT_FLAG_BITSTREAMAV_PIX_FMT_FLAG_PALAV_PIX_FMT_FLAG_BAYERr'   r(   r)   r*   stepAV_PIX_FMT_FLAG_BEav_frame_allocMemoryErrorr   av_frame_refr   sizeofr   av_frame_freeaddressp_voidDLManagedTensor	dl_tensordevice_type	device_idndim
DLDataTypedtypeshapestridesbyte_offsetmanager_ctx_dlpack_managed_tensor_deleterdeleterr   _dlpack_capsule_destructor	Exception)r.   rU   r0   sw_fmtrs   rt   r=   nv12p010lep016leru   r\   itemsizes0s1s2st0st1st2desc
step_bytesncompr1   	frame_refrx   ry   ctxmanagedcapsules                                r3   
__dlpack__VideoPlane.__dlpack__e   s   ::>>a FKK/T  ::>>''{{3,,djjnn.C.CDI  *J  !)R 
 AGs445tzz~~7S7S7X7XAJ  ))FK

--I[[!2!2DJJNN4I4IJFKINN	q=%F  7#Y'Y'%~~fjj9H^^G,
w/S#>HDzzQZZ^^**ZZ^^))qZZ^^**a/ZZ^^))Q. !?@@!1HD# !CDDzzQZZ^^**ZZ^^))+qZZ^^**a/ZZ^^))Q.+ !DEED %&OPP ''/  v{{")*RSSzz--))*++,
 *$ 
 &'J !E4--.99Q<%%3A:!%1!2!2J[[TYYq\->->?:M-Q  
 / z 6$**5G!HIIE!)E  "U*H1}Q)S  1}c.D.D!D)L  a<D# !CDDz[[ZZ+[[ZZ+141C1C1E	#788#""9djjnn=>NN7#VD6==3I,I%J
 ++NN7#VD6==3I,I%J
 FKK7fkk#9#U&++%WfnnY78/0019E!HE!HGAJGAJE!HE!HE!HGAJGAJGAJkkNN6==)6!fmmFMM6R2R+S
 &++KMfnnY78/00V]]I6AV]]E2AV]]G4A++NN?+VFMM/4R-S
 fkk!IKMfnnY78/00!'V]]INN4::<V!W(3%&/#!%",!$a"H"'$+!()%$kk&--=8	#FMM73*G 	  	*73	s   4l8 8m)r&   r$   r#   )__name__
__module____qualname____firstlineno__r   r   rb   r4   cfuncsize_tr:   propertyr=   bintr@   r   r
   rI   rS   r   __static_attributes__ r6   r3   r   r      s    Rz R&** R> \\ fmm     3 3 \\&++  
J&.."; JFJJ J"	 26 kC$J k kr6   r   F)checkr   r7   c                 *   U [         R                  :X  a  g [         R                  " [         R                  [         R                     U R
                  5      nU[         R                  :w  Ga  [         R                  " [         R                  [        R                     US   5      n[         R                  " [         R                  [           US   5      n[         R                  " [         R                  [           US   5      nU[         R                  :w  a*  [        R                  " [         R                  " U5      5        U[         R                  :w  a  [        U5        U[         R                  :w  a  [        U5        [        U5        [        U 5        g )Nr   r   rX   )r   r`   r   r   rp   r{   r   AVFramerc   rn   ro   r   )r   r   r   rx   ry   s        r3   r|   r|   S  s     &++
++fnnV]]3W5H5H
IC
fkkKKs{{ ;SVD	FNN73SV<++fnnW5s1v>#fnnY78FKKKfkk!MS	Mr6   r   c                     [        U S5      (       a]  [        R                  " [        R                  [           [        U S5      5      nU[        R                  :w  a  UR                  U5        g g g )Nr^   )r   r   r   r   rq   r   r`   r}   )r   r   s     r3   r~   r~   l  sY     +..++NN?+ +6
 fkk!OOG$ " /r6   )&r   cython.cimports.libavcimportslibavr   cython.cimports.av.errorr   cython.cimports.av.video.formatr   r   r   cython.cimports.av.video.framer   cython.cimports.cpythonr   r	   cython.cimports.cpython.bufferr
   !cython.cimports.cpython.pycapsuler   r   r   cython.cimports.libc.stdlibr   r   finalcclassPlaner   r   nogil	exceptvalr   rq   voidr|   objectr~   r   r6   r3   <module>r      s     # # . 
 6 E 4 
 5 z z  zz	 ^^O,[[   , % %6;; %  %r6   