
    љi                     (    S SK r S SKr " S S5      rg)    Nc                   \    \ rS rSrSrSS\S\S\S\S\4
S	 jjrSS
\4S jjr	\
S 5       rSrg)VideoDevice   
   Ndevice_indexwidthheightratewaitc                 @    Xl         X l        X0l        X@l        XPl        g N)r   r   r	   r
   r   )selfr   r   r	   r
   r   s         O/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/device/video.py__init__VideoDevice.__init__   s    (
		    filenamec                 :  #    [         R                  " U R                  5      nU R                  (       ae  U R                  (       aT  UR                  [         R                  U R                  5        UR                  [         R                  U R                  5        U R                  (       a*  UR                  [         R                  U R                  5         [        R                  " U R                  5      I S h  vN   UR                  5       u  p4U(       a]  U(       a  [         R                  " X5        [         R                  " SU5      u  pVU(       a   UR!                  5       UR#                  5         $ UR#                  5         g  N! UR#                  5         f = f7f)Nz.jpg)cv2VideoCapturer   r   r	   setCAP_PROP_FRAME_WIDTHCAP_PROP_FRAME_HEIGHTr
   CAP_PROP_FPSasynciosleepr   readimwriteimencodetobytesrelease)r   r   captureretframe
is_successbuffers          r   capture_imageVideoDevice.capture_image   s     ""4#4#45::$++KK00$**=KK114;;?99KK(($))4	--		*** JCKK0%(\\&%%@"
!>>+OOGOO + OOs1   CF#F 8F9A)F ""FF FFc           
         / n[        U R                  5       H  n [        R                  " U5      nU(       a  UR	                  5       (       a}  UR                  UUR                  5        UR                  [        R                  5      UR                  [        R                  5      UR                  [        R                  5      S.5        UR                  5         M     U$ ! WR                  5         f = f)N)idnamer   r	   r
   )rangeMAX_DEVICE_INDEXr   r   isOpenedappendgetBackendNamegetr   r   r   r!   )clsdevicesir"   s       r   get_video_devicesVideoDevice.get_video_devices%   s    s++,A"**1-w//11NN#*#9#9#;"<!(S-E-E!F")++c.G.G"H 'C,<,< =$  ! -  !s   B/C!!C3)r   r	   r
   r   r   )r   NNNg?r   )__name__
__module____qualname____firstlineno__r-   intfloatr   strr'   classmethodr5   __static_attributes__ r   r   r   r      sR    S 3 S UZ gl C .  r   r   )r   r   r   r@   r   r   <module>rA      s     
1 1r   