
    m i                        d dl Z d dlmZmZ d dlmZ e j         G d d                      Z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         G d de                      Ze j         G d d                      Ze j         G d de                      ZdS )    N)PyBuffer_FillInfoPyBytes_FromString)uint64_tc                       e Zd Zd ZdS )SubtitleProxyc                 h    t                               t          j        | j                             d S N)libavsubtitle_freecythonaddressstructselfs    U/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/av/subtitles/subtitle.py__dealloc__zSubtitleProxy.__dealloc__   s(    FN4;7788888    N)__name__
__module____qualname__r    r   r   r   r      s#        9 9 9 9 9r   r   c                       e Zd ZdZdefdZd Zed             Zed             Z	ed             Z
ed             Zd	 Zd
 Zd ZdS )SubtitleSetzm
    A :class:`SubtitleSet` can contain many :class:`Subtitle` objects.

    Wraps :ffmpeg:`AVSubtitle`.
    proxyc                      | _         t           fdt           j         j        j                  D                        _        d S )Nc              3   8   K   | ]}t          |          V  d S r	   )build_subtitle.0ir   s     r   	<genexpr>z(SubtitleSet.__cinit__.<locals>.<genexpr>   s>       
 
()N4##
 
 
 
 
 
r   )r   tupleranger   	num_rectsrects)r   r   s   ` r   	__cinit__zSubtitleSet.__cinit__   sU    
 
 
 
 
-24:3D3N-O-O
 
 
 
 



r   c                 ^    d| j         j         d| j         j         dt          |           ddS )N<. at 0xx>)	__class__r   r   idr   s    r   __repr__zSubtitleSet.__repr__   s8    X)XXDN,CXX2d88XXXX	
r   c                 $    | j         j        j        S r	   )r   r   formatr   s    r   r1   zSubtitleSet.format   s    z ''r   c                 $    | j         j        j        S r	   )r   r   start_display_timer   s    r   r3   zSubtitleSet.start_display_time#   s    z 33r   c                 $    | j         j        j        S r	   )r   r   end_display_timer   s    r   r5   zSubtitleSet.end_display_time'   s    z 11r   c                 $    | j         j        j        S )z$Same as packet pts, in av.time_base.)r   r   ptsr   s    r   r7   zSubtitleSet.pts+   s     z $$r   c                 *    t          | j                  S r	   )lenr%   r   s    r   __len__zSubtitleSet.__len__0   s    4:r   c                 *    t          | j                  S r	   )iterr%   r   s    r   __iter__zSubtitleSet.__iter__3   s    DJr   c                     | j         |         S r	   )r%   r   r    s     r   __getitem__zSubtitleSet.__getitem__6   s    z!}r   N)r   r   r   __doc__r   r&   r/   propertyr1   r3   r5   r7   r:   r=   r@   r   r   r   r   r      s         
} 
 
 
 

 
 

 ( ( X( 4 4 X4 2 2 X2 % % X%           r   r   subtitleindexreturnc                    |dk     s2t          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            )zBuild 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   castuintr   r   r$   
ValueErrorr%   typer
   SUBTITLE_BITMAPBitmapSubtitleSUBTITLE_ASSSUBTITLE_TEXTAssSubtitle)rC   rD   ptrs      r   r   r   :   s     qyyFKU33x~7L7VVV;<<<.6n.C.I%.PC
x3&&&h...
x3###sx33D'D'D8U+++
/#(:
;
;;r   c                   2    e Zd ZdZdedej        fdZd ZdS )Subtitlezg
    An abstract base class for each concrete type of subtitle.
    Wraps :ffmpeg:`AVSubtitleRect`
    rC   rD   c                 0   |dk     s2t          j        t           j        |          |j        j        j        k    rt          d          |j        | _        | j        j        j        |         | _        | j        j	        t          j        k    r	d| _	        d S | j        j	        t          j        k    r	d| _	        d S | j        j	        t          j        k    r	d| _	        d S | j        j	        t          j        k    r	d| _	        d S t          d| j        j	                  )Nr   rG   s   nones   bitmaps   texts   asszunknown subtitle type )r   rH   rI   r   r   r$   rJ   r%   rQ   rK   r
   SUBTITLE_NONErL   rO   rN   r   rC   rD   s      r   r&   zSubtitle.__cinit__T   s    AII{6;..(.2G2QQQ?@@@^
:$*518=C---DIIIX]c111!DIIIX]c///DIIIX]c...DIIIGdhmGGHHHr   c                 D    d| j         j         dt          |           ddS )Nz<av.r*   r+   r,   )r-   r   r.   r   s    r   r/   zSubtitle.__repr__h   s)    Bdn-BBRXXBBBBBr   N)	r   r   r   rA   r   r   intr&   r/   r   r   r   rS   rS   M   s\         
I+ Ifj I I I I(C C C C Cr   rS   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dS )rM   rC   rD   c                 b     t           fdt          d          D                        _        d S )Nc              3   \   K   | ]&}j         j        |         t          |          V  'd S r	   )rQ   linesizeBitmapSubtitlePlaner   s     r   r!   z+BitmapSubtitle.__cinit__.<locals>.<genexpr>o   sQ       
 
-.dh>OPQ>R
a((
 
 
 
 
 
r      )r"   r#   planesrV   s   `  r   r&   zBitmapSubtitle.__cinit__n   sD     
 
 
 
27((
 
 
 
 
r   c                     d| j         j         d| j         j         d| j         d| j         d| j         d| j         dt          |           ddS )	Nr(   r)    r+   z at ,z; at 0xr,   )r-   r   r   widthheightr+   yr.   r   s    r   r/   zBitmapSubtitle.__repr__s   s    S) S SDN,C S SzS S KS S-1VS S6:fS SEGXXRS S S	
r   c                     | j         j        S r	   )rQ   r+   r   s    r   r+   zBitmapSubtitle.xy       xzr   c                     | j         j        S r	   )rQ   re   r   s    r   re   zBitmapSubtitle.y}   rg   r   c                     | j         j        S r	   )rQ   wr   s    r   rc   zBitmapSubtitle.width   rg   r   c                     | j         j        S r	   )rQ   hr   s    r   rd   zBitmapSubtitle.height   rg   r   c                     | j         j        S r	   )rQ   	nb_colorsr   s    r   rn   zBitmapSubtitle.nb_colors   s    x!!r   c                 *    t          | j                  S r	   )r9   r_   r   s    r   r:   zBitmapSubtitle.__len__   s    4;r   c                 *    t          | j                  S r	   )r<   r_   r   s    r   r=   zBitmapSubtitle.__iter__   s    DK   r   c                     | j         |         S r	   )r_   r?   s     r   r@   zBitmapSubtitle.__getitem__   s    {1~r   N)r   r   r   r   r   rX   r&   r/   rB   r+   re   rc   rd   rn   r:   r=   r@   r   r   r   rM   rM   l   s        
+ 
fj 
 
 
 


 
 
   X   X   X   X " " X"     ! ! !    r   rM   c                   X    e Zd Zdedej        fdZdej        e         dej        fdZ	dS )r]   rC   rD   c                 2   |dk    rt          d          |j        j        |         st          d          || _        || _        |j        j        |j        j        z  | _        t          j	        t          j
        |j        j        |                   | _        d S )Nr^   z"BitmapSubtitles have only 4 planeszplane does not exist)rJ   rQ   r\   rC   rD   rj   rl   buffer_sizer   rH   p_voiddata_bufferrV   s      r   r&   zBitmapSubtitlePlane.__cinit__   s    A::ABBB|$U+ 	53444 
#<>HLN:{6=(,2CE2JKKr   viewflagsc                 B    t          || | j        | j        d|           d S )Nr   )r   rw   rt   )r   rx   ry   s      r   __getbuffer__z!BitmapSubtitlePlane.__getbuffer__   s%    $dlD4DaOOOOOr   N)
r   r   r   rM   r   rX   r&   pointer	Py_bufferr{   r   r   r   r]   r]      sq        	L. 	L 	L 	L 	L 	LP&."; PFJ P P P P P Pr   r]   c                   Z    e Zd ZdZd Zed             Zed             Zed             ZdS )rP   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 r*   r+   r,   )dialoguer.   r   s    r   r/   zAssSubtitle.__repr__   s&    F$-FFDFFFFFr   c                 h    | j         j        t          j        urt	          | j         j                  S dS )zl
        Returns the subtitle in the ASS/SSA format. Used by the vast majority of subtitle formats.
        r   )rQ   assr   NULLr   r   s    r   r   zAssSubtitle.ass   s,    
 8<v{**%dhl333sr   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     "||k     r||         }|dz   |k    rdn
||dz            }|dk    r!|dk    r|                    d           |d	z  }K|s%|d
k    r	|dk    rd}n|                    |           n|dk    rd}|dz  }||k     t          |          S )zK
        Extract the dialogue from the ass format. Strip comments.
        r   F   ,      \   N   
      {   T}   )r   r   declarechar	bytearrayr9   appendbytes)	r   comma_countr    stateass_textr   	next_charresulttext_lens	            r   r   zAssSubtitle.dialogue   sV   
 %&"( .55i%KK&)(mmAoo!h,,{g%%q FA Aoo!h,,
 (llA;DUh..HQUOIxI$8$8h'''Q 7??yH'<'< EEMM$''''FA! (ll$ V}}r   c                 h    | j         j        t          j        urt	          | j         j                  S dS )zN
        Rarely used attribute. You're probably looking for dialogue.
        r   )rQ   textr   r   r   r   s    r   r   zAssSubtitle.text   s,    
 8=++%dhm444sr   N)	r   r   r   rA   r/   rB   r   r   r   r   r   r   rP   rP      s         G G G   X # # X#J   X  r   rP   )r   cython.cimports.cpythonr   r   cython.cimports.libc.stdintr   cclassr   r   cfuncrX   rS   r   rM   r]   rP   r   r   r   <module>r      s    I I I I I I I I 0 0 0 0 0 0 9 9 9 9 9 9 9 9
 * * * * * * * *Z <[ < < < < < <$ C C C C C C C C< ' ' ' ' 'X ' ' 'T P P P P P P P P" > > > > >( > > > > >r   