Ë
    ÛÍ:je  ã                   ó<  — 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  G d„ de«      Z G d	„ d
e«      Z ej$                  e e«       «      Z ej$                  e e j*                  «       «      Zej.                  dej0                  ej2                  ej4                        defd„«       Zej:                  ej<                   G d„ d«      «       «       Zej>                  d„ «       Z ej:                  ej<                   G d„ d«      «       «       Z!y)é    N)ÚIntEnum)ÚCodec)Ú
Dictionary)Ú	err_check)Úget_video_formatc                   óL  — 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ej(                  Zej,                  Zej0                  Zej4                  Zej8                  ZdZdZy)ÚHWDeviceTypeé   é   N) Ú__name__Ú
__module__Ú__qualname__ÚlibÚAV_HWDEVICE_TYPE_NONEÚnoneÚAV_HWDEVICE_TYPE_VDPAUÚvdpauÚAV_HWDEVICE_TYPE_CUDAÚcudaÚAV_HWDEVICE_TYPE_VAAPIÚvaapiÚAV_HWDEVICE_TYPE_DXVA2Údxva2ÚAV_HWDEVICE_TYPE_QSVÚqsvÚAV_HWDEVICE_TYPE_VIDEOTOOLBOXÚvideotoolboxÚAV_HWDEVICE_TYPE_D3D11VAÚd3d11vaÚAV_HWDEVICE_TYPE_DRMÚdrmÚAV_HWDEVICE_TYPE_OPENCLÚopenclÚAV_HWDEVICE_TYPE_MEDIACODECÚ
mediacodecÚAV_HWDEVICE_TYPE_VULKANÚvulkanÚAV_HWDEVICE_TYPE_D3D12VAÚd3d12vaÚamfÚohcodec© ó    úe/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/av/codec/hwaccel.pyr	   r	      s›   „ Ø×$Ñ$€DØ×&Ñ&€EØ×$Ñ$€DØ×&Ñ&€EØ×&Ñ&€EØ
×
"Ñ
"€CØ×4Ñ4€LØ×*Ñ*€GØ
×
"Ñ
"€CØ×(Ñ(€FØ×0Ñ0€JØ×(Ñ(€FØ×*Ñ*€GØ
€CØ�Gr-   r	   c                   óp   — e Zd ZdZej
                  Zej                  Zej                  Z
ej                  Zy)ÚHWConfigMethodr   N)r   r   r   r   r   Ú'AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTXÚhw_device_ctxÚ'AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTXÚhw_frame_ctxÚ"AV_CODEC_HW_CONFIG_METHOD_INTERNALÚinternalÚ AV_CODEC_HW_CONFIG_METHOD_AD_HOCÚad_hocr,   r-   r.   r0   r0      s8   „ Ø€Dà×3Ñ3ð ð ×>Ñ>€LØ×5Ñ5€HØ×1Ñ1�Fr-   r0   ÚptrÚreturnc                 ó  — 	 t         t        j                  t        j                  | «         S # t        $ r Y nw xY wt        t        «      }|j                  | «       |t         t        j                  t        j                  | «      <   |S ©N)Ú_singletonsÚcythonÚcastÚ
Py_ssize_tÚKeyErrorÚHWConfigÚ_cinit_sentinelÚ_init)r9   Úconfigs     r.   Úwrap_hwconfigrF   -   sk   € ðÜœ6Ÿ;™;¤v×'8Ñ'8¸#Ó>Ñ?Ð?øÜò Ùðúä¤Ó0€FØ
‡L�L�ÔØ7=„K”—‘œF×-Ñ-¨sÓ3Ñ4Ø€Ms   ‚*- ­	9¸9c                   óâ   — e Zd Zd„ Zej
                  dej                  ej                  ej                        dej                  fd„«       Zd„ Zed„ «       Zed„ «       Zed„ «       Zed	„ «       Zy
)rB   c                 ó*   — |t         urt        d«      ‚y )NzCannot instantiate CodecContext)rC   ÚRuntimeError)ÚselfÚsentinels     r.   Ú__init__zHWConfig.__init__<   s   € Øœ?Ñ*ÜÐ@ÓAÐAð +r-   r9   r:   c                 ó   — || _         y r<   )r9   )rJ   r9   s     r.   rD   zHWConfig._init@   s   € ð ˆ�r-   c                 ó:  — d| j                   j                  › dt        j                  | j                  «      › d| j
                  r| j
                  j                  nd › d| j                  › dt        j                  t        j                  | j                  «      d›d�S )Nz<av.z device_type=z format=z is_supported=z at 0xÚxú>)Ú	__class__r   r   Úav_hwdevice_get_type_nameÚdevice_typeÚformatÚnameÚis_supportedr>   r?   r@   r9   ©rJ   s    r.   Ú__repr__zHWConfig.__repr__F   s�   € à�4—>‘>×*Ñ*Ð+ð ,Ü×8Ñ8¸×9IÑ9IÓJÐKð LØ*.¯+ª+�d—k‘k×&Ò&¸4Ð@ð AØ ×-Ñ-Ð.¨f´V·[±[Ä×ARÑARÐTX×T\ÑT\Ó5]Ð^_Ð4`Ð`aðcð	
r-   c                 ó@   — t        | j                  j                  «      S r<   )r	   r9   rS   rW   s    r.   rS   zHWConfig.device_typeN   s   € ä˜DŸH™H×0Ñ0Ó1Ð1r-   c                 óD   — t        | j                  j                  dd«      S )Nr   )r   r9   Úpix_fmtrW   s    r.   rT   zHWConfig.formatR   s   € ä §¡× 0Ñ 0°!°QÓ7Ð7r-   c                 ó@   — t        | j                  j                  «      S r<   )r0   r9   ÚmethodsrW   s    r.   r]   zHWConfig.methodsV   s   € ä˜dŸh™h×.Ñ.Ó/Ð/r-   c                 ób   — t        | j                  j                  t        j                  z  «      S r<   )Úboolr9   r]   r   r1   rW   s    r.   rV   zHWConfig.is_supportedZ   s"   € ä�D—H‘H×$Ñ$¤s×'RÑ'RÑRÓSÐSr-   N)r   r   r   rL   r>   ÚcfuncÚpointerÚconstr   ÚAVCodecHWConfigÚvoidrD   rX   ÚpropertyrS   rT   r]   rV   r,   r-   r.   rB   rB   9   s£   „ òBð ‡\�\ðØ—>‘> &§,¡,¨s×/BÑ/BÑ"CÑDðà	�‰òó ðò

ð ñ2ó ð2ð ñ8ó ð8ð ñ0ó ð0ð ñTó ñTr-   rB   c                  óÚ   — g } t         j                  }	 t        j                  |«      }|t         j                  k(  r	 | S | j                  t        j                  t        |«      «      «       ŒYr<   )r   r   Úav_hwdevice_iterate_typesÚappendrR   r	   )ÚresultrO   s     r.   Úhwdevices_availablerj   _   s]   € à€FÜ×5Ñ5€AØ
Ü×)Ñ)¨!Ó,ˆØ”×)Ñ)Ò)Øà€Mð 	�‰”c×3Ñ3´LÀ³OÓDÔEð	 r-   c                   ó@   — e Zd Z	 	 	 	 	 dd„Zdefd„Zdedefd„Zd„ Zy)	ÚHWAccelNc                 ó‚  — t        |t        «      r|| _        nWt        |t        «      r$t	        t        j                  |«      «      | _        n#t        |t        «      r|| _        nt        d«      ‚|| _        d| _	        | j                  t        j                  k(  r|rt	        |«      | _	        |€d n|› | _        || _        |si n
t        |«      | _        | j                  t        j                  k(  r(| j                  r| j                  j                  dd«       |sdn|| _        t"        j$                  | _        d | _        y )NzUnknown type for device_typer   Úprimary_ctxÚ1)Ú
isinstancer	   Ú_device_typeÚstrÚintr   Úav_hwdevice_find_type_by_nameÚ
ValueErrorÚis_hw_ownedÚ	device_idr   Ú_deviceÚallow_software_fallbackÚdictÚoptionsÚ
setdefaultÚflagsr>   ÚNULLr9   rE   )rJ   rS   Údevicery   r{   r}   rv   s          r.   rL   zHWAccel.__init__n   sù   € ô �k¤<Ô0Ø +ˆDÕÜ˜¤SÔ)Ü #¤C×$EÑ$EÀkÓ$RÓ SˆDÕÜ˜¤SÔ)Ø +ˆDÕäÐ;Ó<Ð<à&ˆÔØˆŒØ×Ñ¤× 1Ñ 1Ò1±fÜ  ›[ˆDŒNà%˜~‘t°f°XˆŒØ'>ˆÔ$á!(‘r¬d°7«mˆŒØ×Ñ¤× 1Ñ 1Ò1°d×6FÒ6FØ�L‰L×#Ñ# M°3Ô7Ù#‘Q¨ˆŒ
Ü—;‘;ˆŒØˆ�r-   Úcodecc           	      óV  — |j                   D ]Q  }|j                  j                  t        j                  z  sŒ+| j
                  r|j                  | j
                  k7  rŒQ n t        d|› �«      ‚|| _        t        j                  }| j                  r| j                  j                  «       }|}t        | j                  «      }t        t        j                   t        j"                  | j                  «      |j                  j                  ||j                  | j$                  «      «       y )Nz!No supported hardware config for )Úhardware_configsr9   r]   r   r1   rq   rS   ÚNotImplementedErrorrE   r>   r~   rx   Úencoder   r{   r   Úav_hwdevice_ctx_createÚaddressr}   )rJ   r€   rE   Úc_deviceÚdevice_bytesÚ	c_optionss         r.   Ú_initialize_hw_contextzHWAccel._initialize_hw_context�   së   € à×,Ñ,ò 	SˆFØ—J‘J×&Ñ&¬×)TÑ)TÒTØØ× Ò  V×%7Ñ%7¸4×;LÑ;LÒ%LØÙð	Sô &Ð(IÈ%ÈÐ&QÓRÐRàˆŒÜ"(§+¡+ˆØ�<Š<ØŸ<™<×.Ñ.Ó0ˆLØ#ˆHÜ *¨4¯<©<Ó 8ˆ	äÜ×&Ñ&Ü—‘˜tŸx™xÓ(Ø—
‘
×&Ñ&ØØ—‘Ø—
‘
óõ	
r-   r:   c                 óÚ   — | j                   rt        d«      ‚t        | j                  | j                  | j
                  | j                  | j                  ¬«      }|j                  |«       |S )z>Create a new hardware accelerator context with the given codecz$Hardware context already initialized)rS   r   ry   r{   rv   )	r9   rI   rl   rq   rx   ry   r{   rv   rŠ   )rJ   r€   Úrets      r.   ÚcreatezHWAccel.create«   s]   € à�8Š8ÜÐEÓFÐFäØ×)Ñ)Ø—<‘<Ø$(×$@Ñ$@Ø—L‘LØ×(Ñ(ô
ˆð 	×"Ñ" 5Ô)Øˆ
r-   c                 ó‚   — | j                   r3t        j                  t        j                  | j                   «      «       y y r<   )r9   r   Úav_buffer_unrefr>   r†   rW   s    r.   Ú__dealloc__zHWAccel.__dealloc__º   s)   € Ø�8Š8Ü×Ñ¤§¡¨t¯x©xÓ 8Õ9ð r-   )NTNNF)	r   r   r   rL   r   rŠ   rl   r�   r�   r,   r-   r.   rl   rl   k   s=   „ ð Ø $ØØØóðB
¨Eó 
ð8˜Eð  gó ó:r-   rl   )"ÚweakrefÚenumr   r>   Úcython.cimports.libavÚcimportsÚlibavr   Úcython.cimports.av.codec.codecr   Úcython.cimports.av.dictionaryr   Úcython.cimports.av.errorr   Úcython.cimports.av.video.formatr   r	   r0   ÚdeclareÚobjectrC   ÚWeakValueDictionaryr=   r`   ra   rb   rc   rB   rF   ÚfinalÚcclassÚccallrj   rl   r,   r-   r.   ú<module>r       s  ðÛ Ý ã ß #Ð #Ý 0Ý 4Ý .Ý <ô�7ô ô&2�Wô 2ð !�&—.‘. ©«Ó2€Øˆf�n‰n˜VÐ%@ W×%@Ñ%@Ó%BÓC€ð ‡�ð�v—~‘~ f§l¡l°3×3FÑ3FÑ&GÑHð ÈXò ó ðð ‡�Ø‡�÷!Tð !Tó ó ð!TðH ‡�ñó ðð ‡�Ø‡�÷O:ð O:ó ó ñO:r-   