Ë
    ÛÍ:jÀ  ã                   óÌ  — d dl Z d dlmc mZ d dlmZ  e j                  e e«       «      Z	e j                  de j                  e j                  ej                        defd„«       Ze j                   e j"                   G d„ d«      «       «       Ze j                  de j                  ej$                     defd„«       Ze j                   e j"                   G d	„ d
«      «       «       Zy)é    N)Úint64_tÚptrÚreturnc                 óF   — t        t        «      }|j                  | «       |S ©N)Ú
IndexEntryÚ_cinit_bypass_sentinelÚ_init©r   Úobjs     ú]/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/av/index.pyÚwrap_index_entryr      s   € ä Ô!7Ó8€CØ‡I�Iˆc„NØ€Jó    c                   óþ   — e Zd ZdZd„ Zej                  dej                  ej                  e	j                        fd„«       Zd„ Zed„ «       Zed„ «       Zed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zy)r   z¯A single entry from a stream's index.

    This is a thin wrapper around FFmpeg's ``AVIndexEntry``.

    The exact meaning of the fields depends on the container/demuxer.
    c                 ó*   — |t         urt        d«      ‚y )Nz&cannot manually instantiate IndexEntry©r	   ÚRuntimeError©ÚselfÚsentinels     r   Ú	__cinit__zIndexEntry.__cinit__   s   € ØÔ1Ñ1ÜÐGÓHÐHð 2r   r   c                 ó   — || _         y r   )r   ©r   r   s     r   r
   zIndexEntry._init   s	   € àˆ�r   c                 óŠ   — d| j                   › d| j                  › d| j                  › d| j                  › d| j                  › d�S )Nz<av.IndexEntry pos=z timestamp=z flags=z size=z min_distance=ú>)ÚposÚ	timestampÚflagsÚsizeÚmin_distance©r   s    r   Ú__repr__zIndexEntry.__repr__!   sK   € à! $§(¡( ¨;°t·~±~Ð6FÀgÈdÏjÉjÈ\ð ZØ—I‘I�;˜n¨T×->Ñ->Ð,?¸qðBð	
r   c                 ó.   — | j                   j                  S r   )r   r   r!   s    r   r   zIndexEntry.pos'   s   € à�x‰x�|‰|Ðr   c                 ó.   — | j                   j                  S r   )r   r   r!   s    r   r   zIndexEntry.timestamp+   s   € à�x‰x×!Ñ!Ð!r   c                 ó.   — | j                   j                  S r   )r   r   r!   s    r   r   zIndexEntry.flags/   s   € à�x‰x�~‰~Ðr   c                 ób   — t        | j                  j                  t        j                  z  «      S r   )Úboolr   r   ÚlibÚAVINDEX_KEYFRAMEr!   s    r   Úis_keyframezIndexEntry.is_keyframe3   s    € ä�D—H‘H—N‘N¤S×%9Ñ%9Ñ9Ó:Ð:r   c                 ób   — t        | j                  j                  t        j                  z  «      S r   )r'   r   r   r(   ÚAVINDEX_DISCARD_FRAMEr!   s    r   Ú
is_discardzIndexEntry.is_discard7   s    € ä�D—H‘H—N‘N¤S×%>Ñ%>Ñ>Ó?Ð?r   c                 ó.   — | j                   j                  S r   )r   r   r!   s    r   r   zIndexEntry.size;   s   € à�x‰x�}‰}Ðr   c                 ó.   — | j                   j                  S r   )r   r    r!   s    r   r    zIndexEntry.min_distance?   s   € à�x‰x×$Ñ$Ð$r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚcythonÚcfuncÚpointerÚconstr(   ÚAVIndexEntryr
   r"   Úpropertyr   r   r   r*   r-   r   r    © r   r   r   r      s×   „ ñòIð ‡\�\ð˜Ÿ™¨¯©°S×5EÑ5EÑ(FÑGò ó ðò
ð ñó ðð ñ"ó ð"ð ñó ðð ñ;ó ð;ð ñ@ó ð@ð ñó ðð ñ%ó ñ%r   r   c                 óF   — t        t        «      }|j                  | «       |S r   )ÚIndexEntriesr	   r
   r   s     r   Úwrap_index_entriesr=   D   s   € ä$Ô%;Ó<€CØ‡I�Iˆc„NØ€Jr   c                   ó¤   — e Zd ZdZd„ Zej                  dej                  ej                     fd„«       Z
d„ Zdefd„Zd„ Zd	„ Zd
ddœdedefd„Zy)r<   aH  A sequence-like view of FFmpeg's per-stream index entries.

    Exposed as :attr:`~av.stream.Stream.index_entries`.

    The index is provided by the demuxer and may be empty or incomplete depending
    on the container format. This is useful for fast multi-seek loops (e.g., decoding
    at a lower-than-native framerate).
    c                 ó*   — |t         u ry t        d«      ‚)Nz(cannot manually instantiate IndexEntriesr   r   s     r   r   zIndexEntries.__cinit__W   s   € ØÔ-Ñ-ØÜÐEÓFÐFr   r   c                 ó   — || _         y r   )Ú
stream_ptrr   s     r   r
   zIndexEntries._init\   s	   € àˆ�r   c                 ó    — dt        | «      › d�S )Nz<av.IndexEntries[z]>)Úlenr!   s    r   r"   zIndexEntries.__repr__`   s   € Ø"¤3 t£9 +¨RÐ0Ð0r   r   c                 óŒ   — t         j                  5  t        j                  | j                  «      cd d d «       S # 1 sw Y   y xY wr   )r4   Únogilr(   Ú avformat_index_get_entries_countrA   r!   s    r   Ú__len__zIndexEntries.__len__c   s4   € Ü�\‰\ñ 	IÜ×7Ñ7¸¿¹ÓH÷	I÷ 	Iò 	Iús	   ‘:ºAc              #   óL   K  — t        t        | «      «      D ]	  }| |   –— Œ y ­wr   )ÚrangerC   )r   Úis     r   Ú__iter__zIndexEntries.__iter__g   s'   è ø€ Ü”s˜4“yÓ!ò 	ˆAØ�q‘'‹Mñ	ùs   ‚"$c                 ó  — t        |t        «      r”t        | «      }|dk  r||z  }|dk  s||k\  rt        d|› d|› �«      ‚|}t        j
                  5  t        j                  | j                  |«      }d d d «       t        j                  k(  rt        d«      ‚t        |«      S t        |t        «      r<|j                  t        | «      «      \  }}}t        |||«      D �cg c]  }| |   ‘Œ	 c}S t        d«      ‚# 1 sw Y   Œ‰xY wc c}w )Nr   zIndex entries z out of bounds for size zindex entry not foundz#Index must be an integer or a slice)Ú
isinstanceÚintrC   Ú
IndexErrorr4   rE   r(   Úavformat_index_get_entryrA   ÚNULLr   ÚsliceÚindicesrI   Ú	TypeError)	r   ÚindexÚnÚc_idxÚentryÚstartÚstopÚsteprJ   s	            r   Ú__getitem__zIndexEntries.__getitem__k   sü   € Ü�eœSÔ!Ü�D“	ˆAØ�qŠyØ˜‘
�Ø�qŠy˜E QšJÜ  >°%°Ð8PÐQRÐPSÐ!TÓUÐUà %ˆEä—‘ñ MÜ×4Ñ4°T·_±_ÀeÓL�÷MàœŸ™Ò#Ü Ð!8Ó9Ð9ä# EÓ*Ð*Ü˜œuÔ%Ø %§¡¬c°$«iÓ 8ÑˆE�4˜Ü%*¨5°$¸Ó%=Ö> �D˜“GÒ>Ð>äÐAÓBÐB÷Mð Müò ?s   Á!C<Ã"DÃ<DTF)ÚbackwardÚ	any_framer]   r^   c                óð   — |}d}|r|t         j                  z  }|r|t         j                  z  }t        j                  5  t        j
                  | j                  ||«      }ddd«       |S # 1 sw Y   S xY w)z¿Search the underlying index for ``timestamp``.

        This wraps FFmpeg's ``av_index_search_timestamp``.

        Returns an index into this object, or ``-1`` if no match is found.
        r   N)r(   ÚAVSEEK_FLAG_BACKWARDÚAVSEEK_FLAG_ANYr4   rE   Úav_index_search_timestamprA   )r   r   r]   r^   Úc_timestampr   Úidxs          r   Úsearch_timestampzIndexEntries.search_timestamp�   st   € ð  )ˆØˆáØ”S×-Ñ-Ñ-ˆEÙØ”S×(Ñ(Ñ(ˆEä�\‰\ñ 	UÜ×/Ñ/°·±ÀÈeÓTˆC÷	Uð ˆ
÷	Uð ˆ
ús   ¿"A+Á+A5N)r0   r1   r2   r3   r   r4   r5   r6   r(   ÚAVStreamr
   r"   rN   rG   rK   r\   r'   re   r:   r   r   r<   r<   K   ss   „ ñòGð
 ‡\�\ð˜Ÿ™¨¯©Ñ5ò ó ðò1ðI˜ó IòòCð. .2ÀUòØ&*ðØ>Bôr   r<   )r4   Úcython.cimports.libavÚcimportsÚlibavr(   Úcython.cimports.libc.stdintr   ÚdeclareÚobjectr	   r5   r6   r7   r8   r   r   ÚfinalÚcclassrf   r<   r=   r:   r   r   ú<module>ro      sí   ðÛ ß #Ð #Ý /à'˜Ÿ™¨±³Ó9Ð ð ‡�ð˜&Ÿ.™.¨¯©°c×6FÑ6FÑ)GÑHð ÈZò ó ðð ‡�Ø‡�÷0%ð 0%ó ó ð0%ðf ‡�ð˜FŸN™N¨3¯<©<Ñ8ð ¸\ò ó ðð ‡�Ø‡�÷Hð Hó ó ñHr   