
    djp                        d dl mZmZ d dlZd dlmc mZ d dlmZm	Z	 d dl
mZ  ej        e e                      Zej        dedej        ej        ej                          defd            Zej        d	ed
edefd            Z G d de          Z G d de          Z ej        eej        ej        ej        ej        ej        ej        ej         ej!        f          Z"ej#         G d d                      Z$ej#         G d de$                      Zej        dej        ej        ej                          de	de%dz  fd            Z&ej#         G d de$                      Z%dS )    )EnumFlagN)NULLbint)uint64_tchoicesptrreturnc                 d    |t           k    rd S t          t                    }||_        | |_        |S N)r   Option_cinit_sentinelr	   r   )r   r	   objs      D/home/agentuser/manim-venv/lib/python3.11/site-packages/av/option.pywrap_optionr      s2     d{{t))CCGCKJ    bitfieldflagc                 &    t          | |z            S r   )bool)r   r   s     r   flag_in_bitfieldr      s    4   r   c                      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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)dS )
OptionTypeN)*__name__
__module____qualname__libAV_OPT_TYPE_FLAGSFLAGSAV_OPT_TYPE_INTINTAV_OPT_TYPE_INT64INT64AV_OPT_TYPE_DOUBLEDOUBLEAV_OPT_TYPE_FLOATFLOATAV_OPT_TYPE_STRINGSTRINGAV_OPT_TYPE_RATIONALRATIONALAV_OPT_TYPE_BINARYBINARYAV_OPT_TYPE_DICTDICTAV_OPT_TYPE_UINT64UINT64AV_OPT_TYPE_CONSTCONSTAV_OPT_TYPE_IMAGE_SIZE
IMAGE_SIZEAV_OPT_TYPE_PIXEL_FMT	PIXEL_FMTAV_OPT_TYPE_SAMPLE_FMT
SAMPLE_FMTAV_OPT_TYPE_VIDEO_RATE
VIDEO_RATEAV_OPT_TYPE_DURATIONDURATIONAV_OPT_TYPE_COLORCOLORAV_OPT_TYPE_CHLAYOUTCHANNEL_LAYOUTAV_OPT_TYPE_BOOLBOOL r   r   r   r      s        !E

C!E#F!E#F'H#FD#F!E+J)I+J+J'H!E-NDDDr   r   c                   ~    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dS )OptionFlagsN)r   r   r   r   AV_OPT_FLAG_ENCODING_PARAMENCODING_PARAMAV_OPT_FLAG_DECODING_PARAMDECODING_PARAMAV_OPT_FLAG_AUDIO_PARAMAUDIO_PARAMAV_OPT_FLAG_VIDEO_PARAMVIDEO_PARAMAV_OPT_FLAG_SUBTITLE_PARAMSUBTITLE_PARAMAV_OPT_FLAG_EXPORTEXPORTAV_OPT_FLAG_READONLYREADONLYAV_OPT_FLAG_FILTERING_PARAMFILTERING_PARAMrD   r   r   rF   rF   2   sN        3N3N-K-K3N#F'H5OOOr   rF   c                      e Z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ed	             Zed
             Zed             Zed             ZdS )
BaseOptionc                 P    |t           urt          d| j        j                   d S )NzCannot construct av.)r   RuntimeError	__class__r   )selfsentinels     r   	__cinit__zBaseOption.__cinit__N   s1    ?**Odn6MOOPPP +*r   c                     | j         j        S r   )r	   namer\   s    r   r`   zBaseOption.nameR   s    x}r   c                 H    | j         j        t          k    r| j         j        ndS N )r	   helpr   ra   s    r   re   zBaseOption.helpV   s     $ 5 5tx}}2=r   c                     | j         j        S r   )r	   flagsra   s    r   rg   zBaseOption.flagsZ   s    x~r   c                 J    t          | j        j        t          j                  S r   )r   r	   rg   r   rG   ra   s    r   is_encoding_paramzBaseOption.is_encoding_param^       0NOOOr   c                 J    t          | j        j        t          j                  S r   )r   r	   rg   r   rI   ra   s    r   is_decoding_paramzBaseOption.is_decoding_paramb   rj   r   c                 J    t          | j        j        t          j                  S r   )r   r	   rg   r   rK   ra   s    r   is_audio_paramzBaseOption.is_audio_paramf       0KLLLr   c                 J    t          | j        j        t          j                  S r   )r   r	   rg   r   rM   ra   s    r   is_video_paramzBaseOption.is_video_paramj   ro   r   c                 J    t          | j        j        t          j                  S r   )r   r	   rg   r   rO   ra   s    r   is_subtitle_paramzBaseOption.is_subtitle_paramn   rj   r   c                 J    t          | j        j        t          j                  S r   )r   r	   rg   r   rQ   ra   s    r   	is_exportzBaseOption.is_exportr   s    0FGGGr   c                 J    t          | j        j        t          j                  S r   )r   r	   rg   r   rS   ra   s    r   is_readonlyzBaseOption.is_readonlyv   s    0HIIIr   c                 J    t          | j        j        t          j                  S r   )r   r	   rg   r   rU   ra   s    r   is_filtering_paramzBaseOption.is_filtering_paramz   s    0OPPPr   N)r   r   r   r^   propertyr`   re   rg   ri   rl   rn   rq   rs   ru   rw   ry   rD   r   r   rX   rX   L   si       Q Q Q   X > > X>   X P P XP P P XP M M XM M M XM P P XP H H XH J J XJ Q Q XQ Q Qr   rX   c                       e Zd Zed             Zed             Zed             Zed             Zed             Zd Z	dS )r   c                 4    t          | j        j                  S r   )r   r	   typera   s    r   r}   zOption.type   s    $(-(((r   c                     | j         j        S )z
        This can be used to find aliases of an option.
        Options in a particular descriptor with the same offset are aliases.
        )r	   offsetra   s    r   r   zOption.offset   s     xr   c                    | j         j        t          v r| j         j        j        S | j         j        t
          j        t
          j        t
          j        fv r| j         j        j	        S | j         j        t
          j
        t
          j        t
          j        t
          j        t
          j        fv r-| j         j        j        t           k    r| j         j        j        ndS d S rc   )r	   r}   
_INT_TYPESdefault_vali64r   r$   r&   r*   dblr(   r,   r4   r:   r>   strr   ra   s    r   defaultzOption.default   s    8=J&&8'++8="!$
 
 

 8'++8=""&&!
 
 
 04x/C/G4/O/O48'++UWW
 
r   c                 r    | j         j        t          v rt          | j         j                  S | j         j        S r   )r	   r}   r   intminra   s    r   r   z
Option.min   -    8=J&&tx|$$$x|r   c                 r    | j         j        t          v rt          | j         j                  S | j         j        S r   )r	   r}   r   r   maxra   s    r   r   z
Option.max   r   r   c                 v    d| j         j         d| j         d| j         d| j        ddt          |           ddS )N<av. z (z at *0xxz) at 0x>)r[   r   r`   r}   r   idra   s    r   __repr__zOption.__repr__   sN    rdn-rr	rrTYrrt{rrreghlememrrrrrr   N)
r   r   r   rz   r}   r   r   r   r   r   rD   r   r   r   r      s        ) ) X)   X X X XX$   X
   X
s s s s sr   r   
is_defaultc                 d    | t           k    rd S t          t                    }| |_        ||_        |S r   )r   OptionChoicer   r	   r   )r	   r   r   s      r   wrap_option_choicer      s2     d{{t$_55CCGCNJr   c                   .    e Zd ZdZed             Zd ZdS )r   zt
    Represents AV_OPT_TYPE_CONST options which are essentially
    choices of non-const option with same unit.
    c                 $    | j         j        j        S r   )r	   r   r   ra   s    r   valuezOptionChoice.value   s    x#''r   c                 T    d| j         j         d| j         dt          |           ddS )Nr   r   z at 0xr   r   )r[   r   r`   r   ra   s    r   r   zOptionChoice.__repr__   s3    Ndn-NN	NNDNNNNNr   N)r   r   r   __doc__rz   r   r   rD   r   r   r   r      sM         
 ( ( X(O O O O Or   r   )'enumr   r   cythoncython.cimports.libavcimportslibavr   r   r   cython.cimports.libc.stdintr   declareobjectr   cfunctuplepointerconstAVOptionr   r   r   r   r   rF   r   r    r"   r6   r8   r<   r@   rB   r   cclassrX   r   r   rD   r   r   <module>r      s            # # # # # # # # #         0 0 0 0 0 0 &.22 S\(BC    !x !x !D ! ! ! !               ,6 6 6 6 6$ 6 6 6 V^	!"  	 
 /Q /Q /Q /Q /Q /Q /Q /Qd -s -s -s -s -sZ -s -s -s` 		S\2	3	AE	D	 	 	 	 O O O O O: O O O O Or   