Ë
    ÛÍ:j§'  ã                   ód  — d dl Z d dlmZmZ d dlmZ e j                  e j                   G d„ d«      «       «       Z e j                  e
 e
«       «      Ze j                  e j                   G d„ d«      «       «       Ze j                  ded	e j                  d
efd„«       Ze j                   G d„ d«      «       Ze j                  e j                   G d„ de«      «       «       Ze j                  e j                   G d„ d«      «       «       Ze j                  e j                   G d„ de«      «       «       Zy)é    N)ÚPyBuffer_FillInfoÚPyBytes_FromString)Úmemcpyc                   ó   — e Zd Zd„ Zy)ÚSubtitleProxyc                 óh   — t         j                  t        j                  | j                  «      «       y ©N)ÚlibÚavsubtitle_freeÚcythonÚaddressÚstruct©Úselfs    új/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/av/subtitles/subtitle.pyÚ__dealloc__zSubtitleProxy.__dealloc__	   s   € Ü×ÑœFŸN™N¨4¯;©;Ó7Õ8ó    N)Ú__name__Ú
__module__Ú__qualname__r   © r   r   r   r      s   „ ó9r   r   c                   óH  — e Zd ZdZdd„Ze	 	 ddededededed	efd
„«       Z	d„ Z
ed„ «       Zej                  defd„«       Zed„ «       Zej                  defd„«       Zed„ «       Zej                  defd„«       Zed„ «       Zej                  defd„«       Zd„ Zd„ Zd„ Zy)ÚSubtitleSetzm
    A :class:`SubtitleSet` can contain many :class:`Subtitle` objects.

    Wraps :ffmpeg:`AVSubtitle`.
    Nc                 ó  ‡ — |t         u rt        «       ‰ _        d‰ _        y t	        |t        «      rH|‰ _        t        ˆ fd„t        ‰ j                  j                  j                  «      D «       «      ‰ _        y t        d«      ‚)Nr   c              3   ó6   •K  — | ]  }t        ‰|«      –— Œ y ­wr	   )Úbuild_subtitle©Ú.0Úir   s     €r   ú	<genexpr>z(SubtitleSet.__cinit__.<locals>.<genexpr>!   s   øè ø€ ò Ø,-”˜t Q×'ñùs   ƒz@SubtitleSet requires a SubtitleProxy or use SubtitleSet.create())
Ú_cinit_bypass_sentinelr   ÚproxyÚrectsÚ
isinstanceÚtupleÚranger   Ú	num_rectsÚ	TypeError)r   Úproxy_or_sentinels   ` r   Ú	__cinit__zSubtitleSet.__cinit__   sn   ø€ ØÔ 6Ñ6ä&›ˆDŒJØˆD�JÜÐ)¬=Ô9à*ˆDŒJÜó Ü16°t·z±z×7HÑ7H×7RÑ7RÓ1Sôó ˆD�Jô ØRóð r   ÚtextÚstartÚendÚptsÚsubtitle_formatÚreturnc           	      ó>  — t        t        «      }||j                  j                  _        ||j                  j                  _        ||j                  j                  _        ||j                  j                  _        d|j                  j                  _        t        j                  t        j                  t        j                  t        j                        t        j                  t        j                  t        j                  t        j                     «      «      «      |j                  j                  _        |j                  j                  j                   t        j"                  k(  rt%        d«      ‚t        j                  t        j                  t        j                     t        j                  t        j                  t        j                  «      «      «      }|t        j"                  k(  rgt        j'                  |j                  j                  j                   «       t        j"                  |j                  j                  _        t%        d«      ‚||j                  j                  j                   d<   d|_        d|_        d|_        d|_        d|_        t        j2                  |_        t        j"                  |_        d|_        t;        | «      }t        j                  t        j<                  t        j?                  |dz   «      «      |_         |j@                  t        j"                  k(  rt%        d«      ‚tC        |j@                  t        j                  t        j<                  | «      |«       d|j@                  |<   tE        |d«      f|_        |S )aÕ  
        Create a SubtitleSet for encoding.

        :param text: The subtitle text in ASS dialogue format
            (e.g. ``b"0,0,Default,,0,0,0,,Hello World"``)
        :param start: Start display time as offset from pts (typically 0)
        :param end: End display time as offset from pts (i.e., duration)
        :param pts: Presentation timestamp in stream time_base units
        :param subtitle_format: Subtitle format (default 1 for text)
        :return: A SubtitleSet ready for encoding

        .. note::
            All timing values should be in stream time_base units.
            For MKV (time_base=1/1000), units are milliseconds.
            For MP4 (time_base=1/1000000), units are microseconds.
        é   z'Failed to allocate subtitle rects arrayz Failed to allocate subtitle rectr   z Failed to allocate subtitle text)#r   r!   r"   r   ÚformatÚstart_display_timeÚend_display_timer.   r'   r   ÚcastÚpointerr
   ÚAVSubtitleRectÚ
av_malloczÚsizeofr#   ÚNULLÚMemoryErrorÚav_freeÚxÚyÚwÚhÚ	nb_colorsÚSUBTITLE_ASSÚtyper+   ÚflagsÚlenÚp_charÚ	av_mallocÚassr   ÚAssSubtitle)r+   r,   r-   r.   r/   ÚsubsetÚrectÚtext_lens           r   ÚcreatezSubtitleSet.create)   s[  € ô0 *Ô*@ÓAˆà%4ˆ�‰×ÑÔ"Ø16ˆ�‰×ÑÔ.Ø/2ˆ�‰×ÑÔ,Ø"%ˆ�‰×ÑÔà()ˆ�‰×ÑÔ%Ü$*§K¡KÜ�N‰Nœ6Ÿ>™>¬#×*<Ñ*<Ñ=Ñ>Ü�N‰Nœ6Ÿ=™=¬¯©¼×8JÑ8JÑ)KÓLÓMó%
ˆ�‰×ÑÔ!ð �<‰<×Ñ×$Ñ$¬¯©Ò3ÜÐGÓHÐHä39·;±;Ü�N‰Nœ3×-Ñ-Ñ.Ü�N‰Nœ6Ÿ=™=¬×);Ñ);Ó<Ó=ó4
ˆð ”6—;‘;ÒÜ�K‰K˜Ÿ™×+Ñ+×1Ñ1Ô2Ü(.¯©ˆF�L‰L×ÑÔ%ÜÐ@ÓAÐAà'+ˆ�‰×Ñ×!Ñ! !Ñ$àˆŒØˆŒØˆŒØˆŒØˆŒÜ×$Ñ$ˆŒ	Ü—K‘KˆŒ	ØˆŒ
ä&)¨$£iˆÜ—;‘;œvŸ}™}¬c¯m©m¸HÀq¹LÓ.IÓJˆŒØ�8‰8”v—{‘{Ò"ÜÐ@ÓAÐAÜˆt�x‰xœŸ™¤V§]¡]°DÓ9¸8ÔDØˆ�‰�Ñä# F¨AÓ.Ð0ˆŒàˆr   c                 ó~   — d| j                   j                  › d| j                   j                  › dt        | «      d›d�S )Nú<ú.ú at 0xr>   ú>)Ú	__class__r   r   Úidr   s    r   Ú__repr__zSubtitleSet.__repr__o   s=   € à�—‘×)Ñ)Ð*¨!¨D¯N©N×,CÑ,CÐ+DÀFÌ2ÈdË8ÐTUÈ,ÐVWÐXð	
r   c                 óB   — | j                   j                  j                  S r	   ©r"   r   r3   r   s    r   r3   zSubtitleSet.formatt   s   € à�z‰z× Ñ ×'Ñ'Ð'r   Úvaluec                 ó:   — || j                   j                  _        y r	   rX   ©r   rY   s     r   r3   zSubtitleSet.formatx   s   € à#(ˆ�
‰
×ÑÕ r   c                 óB   — | j                   j                  j                  S r	   ©r"   r   r4   r   s    r   r4   zSubtitleSet.start_display_time|   s   € à�z‰z× Ñ ×3Ñ3Ð3r   c                 ó:   — || j                   j                  _        y r	   r]   r[   s     r   r4   zSubtitleSet.start_display_time€   s   € à/4ˆ�
‰
×ÑÕ,r   c                 óB   — | j                   j                  j                  S r	   ©r"   r   r5   r   s    r   r5   zSubtitleSet.end_display_time„   s   € à�z‰z× Ñ ×1Ñ1Ð1r   c                 ó:   — || j                   j                  _        y r	   r`   r[   s     r   r5   zSubtitleSet.end_display_timeˆ   s   € à-2ˆ�
‰
×ÑÕ*r   c                 óB   — | j                   j                  j                  S )z$Same as packet pts, in av.time_base.©r"   r   r.   r   s    r   r.   zSubtitleSet.ptsŒ   s   € ð �z‰z× Ñ ×$Ñ$Ð$r   c                 ó:   — || j                   j                  _        y r	   rc   r[   s     r   r.   zSubtitleSet.pts‘   s   € à %ˆ�
‰
×ÑÕr   c                 ó,   — t        | j                  «      S r	   )rF   r#   r   s    r   Ú__len__zSubtitleSet.__len__•   s   € Ü�4—:‘:‹Ðr   c                 ó,   — t        | j                  «      S r	   )Úiterr#   r   s    r   Ú__iter__zSubtitleSet.__iter__˜   s   € Ü�D—J‘JÓÐr   c                 ó    — | j                   |   S r	   )r#   ©r   r   s     r   Ú__getitem__zSubtitleSet.__getitem__›   s   € Ø�z‰z˜!‰}Ðr   r	   )r   r2   )r   r   r   Ú__doc__r*   ÚstaticmethodÚbytesÚintr   rN   rV   Úpropertyr3   Úsetterr4   r5   r.   rf   ri   rl   r   r   r   r   r      sM  „ ñóð  ð
 Ø ñCØðCàðCð ðCð ð	Cð
 ðCð 
òCó ðCòJ
ð
 ñ(ó ð(ð ‡]�]ð)˜Cò )ó ð)ð ñ4ó ð4ð ×Ñð5¨ò 5ó ð5ð ñ2ó ð2ð ×Ñð3 cò 3ó ð3ð ñ%ó ð%ð 	‡Z�Zð&˜ò &ó ð&òò ór   r   ÚsubtitleÚindexr0   c                 ó   — |dk  sEt        j                  t         j                  |«      | j                  j                  j
                  k\  rt        d«      ‚| j                  j                  j                  |   }|j                  t        j                  k(  rt        | |«      S |j                  t        j                  k(  s|j                  t        j                  k(  rt        | |«      S t        d|j                  z  «      ‚)z†Build an av.Stream for an existing AVStream.

    The AVStream MUST be fully constructed and ready for use before this is called.
    r   ú subtitle rect index out of rangezunknown subtitle type %r)r   r6   Úuintr"   r   r'   Ú
ValueErrorr#   rD   r
   ÚSUBTITLE_BITMAPÚBitmapSubtitlerC   ÚSUBTITLE_TEXTrJ   )rs   rt   Úptrs      r   r   r   Ÿ   s»   € ð ˆq‚y”F—K‘K¤§¡¨UÓ3°x·~±~×7LÑ7L×7VÑ7VÒVÜÐ;Ó<Ð<à.6¯n©n×.CÑ.C×.IÑ.IÈ%Ñ.P€Cà
‡x�x”3×&Ñ&Ò&Ü˜h¨Ó.Ð.Ø
‡x�x”3×#Ñ#Ò# s§x¡x´3×3DÑ3DÒ'DÜ˜8 UÓ+Ð+ä
Ð/°#·(±(Ñ:Ó
;Ð;r   c                   ó:   — e Zd ZdZdedej                  fd„Zd„ Zy)ÚSubtitlezg
    An abstract base class for each concrete type of subtitle.
    Wraps :ffmpeg:`AVSubtitleRect`
    rs   rt   c                 óÚ  — |dk  sEt        j                  t         j                  |«      |j                  j                  j
                  k\  rt        d«      ‚|j                  | _        | j                  j                  j                  |   | _        | j                  j                  t        j                  k(  rd| _	        y | j                  j                  t        j                  k(  rd| _	        y | j                  j                  t        j                  k(  rd| _	        y | j                  j                  t        j                  k(  rd| _	        y t        d| j                  j                  ›�«      ‚)Nr   rv   s   nones   bitmaps   texts   asszunknown subtitle type )r   r6   rw   r"   r   r'   rx   r#   r|   rD   r
   ÚSUBTITLE_NONEry   r{   rC   ©r   rs   rt   s      r   r*   zSubtitle.__cinit__¹   só   € à�AŠIÜ�{‰{œ6Ÿ;™;¨Ó.°(·.±.×2GÑ2G×2QÑ2QÒQäÐ?Ó@Ð@Ø—^‘^ˆŒ
Ø—:‘:×$Ñ$×*Ñ*¨5Ñ1ˆŒà�8‰8�=‰=œC×-Ñ-Ò-ØˆD�IØ�X‰X�]‰]œc×1Ñ1Ò1Ø!ˆD�IØ�X‰X�]‰]œc×/Ñ/Ò/ØˆD�IØ�X‰X�]‰]œc×.Ñ.Ò.ØˆD�IäÐ5°d·h±h·m±mÐ5FÐGÓHÐHr   c                 óP   — d| j                   j                  › dt        | «      d›d�S )Nz<av.rR   r>   rS   )rT   r   rU   r   s    r   rV   zSubtitle.__repr__Í   s(   € Ø�d—n‘n×-Ñ-Ð.¨f´R¸³X¸a°LÀÐBÐBr   N)	r   r   r   rm   r   r   rp   r*   rV   r   r   r   r~   r~   ²   s'   „ ñð
I +ð I°f·j±jó Ió(Cr   r~   c                   ó˜   — e Zd Zdedej
                  fd„Zd„ Zed„ «       Z	ed„ «       Z
ed„ «       Zed„ «       Zed	„ «       Zd
„ Zd„ Zd„ Zy)rz   rs   rt   c                 óJ   ‡ — t        ˆ fd„t        d«      D «       «      ‰ _        y )Nc              3   ój   •K  — | ]*  }‰j                   j                  |   sŒt        ‰|«      –— Œ, y ­wr	   )r|   ÚlinesizeÚBitmapSubtitlePlaner   s     €r   r    z+BitmapSubtitle.__cinit__.<locals>.<genexpr>Õ   s0   øè ø€ ò 
Ø-.¸d¿h¹h×>OÑ>OÐPQÓ>RÔ  a×(ñ
ùs   ƒ3¢3é   )r%   r&   Úplanesr�   s   `  r   r*   zBitmapSubtitle.__cinit__Ô   s    ø€ Üó 
Ü27¸³(ô
ó 
ˆ�r   c                 óæ   — d| j                   j                  › d| j                   j                  › d| j                  › d| j                  › d| j
                  › d| j                  › dt        | «      d›d�S )	NrP   rQ   ú r>   z at ú,z; at 0xrS   )rT   r   r   ÚwidthÚheightr>   r?   rU   r   s    r   rV   zBitmapSubtitle.__repr__Ù   sh   € à�—‘×)Ñ)Ð*¨!¨D¯N©N×,CÑ,CÐ+DÀAØ�z‰zˆl˜!˜DŸK™K˜=¨¨T¯V©V¨H°A°d·f±f°X¸WÄRÈÃXÈaÀLÐPQðSð	
r   c                 ó.   — | j                   j                  S r	   )r|   r>   r   s    r   r>   zBitmapSubtitle.xß   ó   € à�x‰x�z‰zÐr   c                 ó.   — | j                   j                  S r	   )r|   r?   r   s    r   r?   zBitmapSubtitle.yã   r�   r   c                 ó.   — | j                   j                  S r	   )r|   r@   r   s    r   r�   zBitmapSubtitle.widthç   r�   r   c                 ó.   — | j                   j                  S r	   )r|   rA   r   s    r   rŽ   zBitmapSubtitle.heightë   r�   r   c                 ó.   — | j                   j                  S r	   )r|   rB   r   s    r   rB   zBitmapSubtitle.nb_colorsï   s   € à�x‰x×!Ñ!Ð!r   c                 ó,   — t        | j                  «      S r	   )rF   r‰   r   s    r   rf   zBitmapSubtitle.__len__ó   s   € Ü�4—;‘;ÓÐr   c                 ó,   — t        | j                  «      S r	   )rh   r‰   r   s    r   ri   zBitmapSubtitle.__iter__ö   s   € Ü�D—K‘KÓ Ð r   c                 ó    — | j                   |   S r	   )r‰   rk   s     r   rl   zBitmapSubtitle.__getitem__ù   s   € Ø�{‰{˜1‰~Ðr   N)r   r   r   r   r   rp   r*   rV   rq   r>   r?   r�   rŽ   rB   rf   ri   rl   r   r   r   rz   rz   Ñ   s‘   „ ð
 +ð 
°f·j±jó 
ò

ð ñó ðð ñó ðð ñó ðð ñó ðð ñ"ó ð"ò ò!ór   rz   c                   ón   — e Zd Zdedej
                  fd„Zdej                  e   dej
                  fd„Z	y)r‡   rs   rt   c                 ól  — |dk\  rt        d«      ‚|j                  j                  |   st        d«      ‚|| _        || _        |j                  j
                  |j                  j                  z  | _        t        j                  t        j                  |j                  j                  |   «      | _        y )Nrˆ   z"BitmapSubtitles have only 4 planeszplane does not exist)rx   r|   r†   rs   rt   r@   rA   Úbuffer_sizer   r6   Úp_voidÚdataÚ_bufferr�   s      r   r*   zBitmapSubtitlePlane.__cinit__   sƒ   € Ø�AŠ:ÜÐAÓBÐBØ�|‰|×$Ñ$ UÒ+ÜÐ3Ó4Ð4à ˆŒØˆŒ
Ø#Ÿ<™<Ÿ>™>¨H¯L©L¯N©NÑ:ˆÔÜ—{‘{¤6§=¡=°(·,±,×2CÑ2CÀEÑ2JÓKˆ�r   ÚviewrE   c                 óL   — t        || | j                  | j                  d|«       y )Nr   )r   r�   rš   )r   rž   rE   s      r   Ú__getbuffer__z!BitmapSubtitlePlane.__getbuffer__  s   € Ü˜$  d§l¡l°D×4DÑ4DÀaÈÕOr   N)
r   r   r   rz   r   rp   r*   r7   Ú	Py_bufferr    r   r   r   r‡   r‡   ý   s?   „ ð	L .ð 	L¸¿¹ó 	LðP &§.¡.°Ñ";ð PÀFÇJÁJô Pr   r‡   c                   óF   — e Zd ZdZd„ Zed„ «       Zed„ «       Zed„ «       Zy)rJ   zY
    Represents an ASS/Text subtitle format, as opposed to a bitmap Subtitle format.
    c                 ó<   — d| j                   ›dt        | «      d›d�S )Nz<av.AssSubtitle rR   r>   rS   )ÚdialoguerU   r   s    r   rV   zAssSubtitle.__repr__  s"   € Ø! $§-¡-Ð!2°&¼¸D»À!¸ÀAÐFÐFr   c                 óŽ   — | j                   j                  t        j                  urt	        | j                   j                  «      S y)zl
        Returns the subtitle in the ASS/SSA format. Used by the vast majority of subtitle formats.
        r   )r|   rI   r   r;   r   r   s    r   rI   zAssSubtitle.ass  s.   € ð
 �8‰8�<‰<œvŸ{™{Ñ*Ü% d§h¡h§l¡lÓ3Ð3Ør   c                 óà  — d}d}d}| j                   }t        j                  t        j                  «      \  }}t	        «       }t        |«      }|dk  r"||k  r||   dk(  r|dz  }|dz  }|dk  r||k  rŒ||k  rk||   }|dz   |k\  rdn||dz      }|dk(  r|dk(  r|j                  d«       |d	z  }Œ=|s|d
k(  r|dk7  rd}n|j                  |«       n|dk(  rd}|dz  }||k  rŒkt        |«      S )zK
        Extract the dialogue from the ass format. Strip comments.
        r   Fé   é,   r2   é\   éN   é
   é   é{   Té}   )rI   r   ÚdeclareÚucharÚ	bytearrayrF   Úappendro   )	r   Úcomma_countr   ÚstateÚass_textÚcharÚ	next_charÚresultrM   s	            r   r¤   zAssSubtitle.dialogue#  s  € ð
 %&ˆØ ˆØ"ˆØŸ(™(ˆÜ Ÿ.™.¬¯©Ó6‰ˆˆiÜ%›KˆÜ&)¨(£mˆà˜AŠo ! h¢,Ø˜‰{˜gÒ%Ø˜qÑ �Ø�‰FˆAð ˜AŠo ! h£,ð
 �(ŠlØ˜A‘;ˆDØ ™U hÒ.™°H¸QÀ¹U±OˆIà�xÒ I°Ò$8Ø—‘˜hÔ'Ø�Q‘�ØáØ˜7’? y°HÒ'<Ø ‘Eà—M‘M $Õ'Ø˜’Ø�Ø�‰FˆAð! �(‹lô$ �V‹}Ðr   c                 óŽ   — | j                   j                  t        j                  urt	        | j                   j                  «      S y)zN
        Rarely used attribute. You're probably looking for dialogue.
        r   )r|   r+   r   r;   r   r   s    r   r+   zAssSubtitle.textI  s.   € ð
 �8‰8�=‰=¤§¡Ñ+Ü% d§h¡h§m¡mÓ4Ð4Ør   N)	r   r   r   rm   rV   rq   rI   r¤   r+   r   r   r   rJ   rJ     sJ   „ ñòGð ñó ðð ñ#ó ð#ðJ ñó ñr   rJ   )r   Úcython.cimports.cpythonr   r   Úcython.cimports.libc.stringr   ÚfinalÚcclassr   r¯   Úobjectr!   r   Úcfuncrp   r~   r   rz   r‡   rJ   r   r   r   ú<module>rÀ      sO  ðÛ ß IÝ .ð ‡�Ø‡�÷9ð 9ó ó ð9ð
 (˜Ÿ™¨±³Ó9Ð ð ‡�Ø‡�÷Jð Jó ó ðJðZ ‡�ð<˜[ð <°·±ð <Àò <ó ð<ð$ ‡�÷Cð Có ðCð< ‡�Ø‡�ô'�Xó 'ó ó ð'ðT ‡�Ø‡�÷Pð Pó ó ðPð" ‡�Ø‡�ô>�(ó >ó ó ñ>r   