
    3j.                     
   % S SK r S SKrS SKrS SKrS SKJr  S SKrS SKJr	  S SK
Jr  S SKJrJr  S SKJrJr  / SQr\R&                  " \\" 5       5      r\R,                  S\R.                  S	\4S
 j5       r\R,                  S\S	\R.                  4S j5       r " S S\5      r\R&                  " \R.                  \" S5      5      r\R&                  " \S5      r " S S\\ 5      r  " S S\5      r! " S S\5      r"S\	RF                  * S\ 4S\	RH                  * S\%4S\	RL                  * S\'4S\	RP                  * S\ 4S\	RR                  * S\ 4S\	RT                  * S\ 4S\	RV                  * S\,4S \	RZ                  * SS4S!\	R\                  * SS4S"\	R^                  * S\ 4S#\	R`                  * S$\'4S%\	Rb                  * S\ 4S&\	Rd                  * S\ 4S'\	Rf                  * S(S4S)\	Rh                  * S\ 4S*\	Rj                  * SS4S+\	Rl                  * SS4S,\	Rn                  * SS4S-\	Rp                  * SS4S.\	Rr                  * S/\"4S0\	Rt                  * S1\"4S2\	Rv                  * S3\"4S4\	Rx                  * S5\"4S6\	Rz                  * S7\"4S8\	R|                  * S9\"4S:\	R~                  * S;\!4S<\S=\%44r@ " S> S?\A5      rB\R                   " S@ SA5      5       rD\B" SB\D4SC\E0\@ V s/ s H  o SSD PM	     sn 5      rF\F HR  rG\G\H" 5       \GR                  '   \GR                  \:X  a	  \\GlK        M0  \	R                  " \GR                  * 5      \GlK        MT     0 rM\N\OSE'   SF rP\P" SG\ R                  \ R                  45        \P" SH\ R                  \ R                  \ R                  \ R                  45        \P" SI\ R                  45        \P" SJ\ R                  45        \P" SK\ R                  45        \P" SL\ R                  45        \P" SM\ R                  45        \P" SN\ R                  45        \P" SO\ R                  45        \P" SP\ R                  45        \P" SQ\ R                  45        \P" SR\ R                  \ R                  45        \P" SS\ R                  45        \P" ST\ R                  45        \P" SU\ R                  45        \P" SV\ R                  45        \P" SW\ R                  45        \P" SX\ R                   Vs/ s H  o\M;  d  M
  UPM     sn5         " SY SZ\\'5      rh " S[ S\\5      ri\h\M\ R                  '   \h\H" 5       SZ'   \R                  SZ5        \@ H}  u  rlrmrIrn\I=(       d#    \lR                  5       R                  S]S^5      S_-   rI\nc  \4rqO\r" \n\5      (       a  \n4rqO\\n4rq\A" \I\qSC\E05      rs\s\M\m'   \s\H" 5       \I'   \R                  \I5        M     C@\R&                  " \\" 5       5      rt\R&                  " \R.                  S 5      qu\R&                  " \R.                  S 5      qv\R                  SfS	\R.                  4S` jj5       rx\R,                  \R                  " SaSbSc9SfSd\R.                  S	\R.                  4Se jj5       5       rzgs  sn f s  snf )g    N)local)libav)get_last_error)fprintfstderr)freemalloc)	ErrorTypeFFmpegErrorLookupError	HTTPErrorHTTPClientErrorUndefinedErrorcodereturnc                 J    [        U S-  U S-	  S-  U S-	  S-  U S-	  S-  45      $ )zUConvert an integer error code into 4-byte tag.

>>> code_to_tag(1953719668)
b'test'

            )bytes)r   s    B/home/wildlama/miniconda3/lib/python3.13/site-packages/av/error.pycode_to_tagr      sA     4KQY$RZ4RZ4		
     tagc                 v    [        U 5      S:w  a  [        S5      eU S   U S   S-  -   U S   S-  -   U S   S	-  -   $ )
zWConvert a 4-byte error tag into an integer code.

>>> tag_to_code(b'test')
1953719668

   zError tags are 4 bytes.r      r      r      r   )len
ValueError)r   s    r   tag_to_coder#   +   sL     3x1}233Fs1v{#s1v|4A"EEr   c                   V   ^  \ rS rSrSrSU 4S jjr\S 5       r\S 5       rS r	Sr
U =r$ )	r   8   aJ  Exception class for errors from within FFmpeg.

.. attribute:: errno

    FFmpeg's integer error code.

.. attribute:: strerror

    FFmpeg's error message.

.. attribute:: filename

    The filename that was being operated on (if available).

.. attribute:: log

    The tuple from :func:`av.logging.get_last_log`, or ``None``.

c                    > X/nU(       d  U(       a)  UR                  U5        U(       a  UR                  U5        [        TU ]  " U6   Xl        X l        [        U5      U l        g N)appendsuper__init__errnostrerrortupleargs)selfr   messagefilenamelogr.   	__class__s         r   r*   FFmpegError.__init__M   sL    sKK!C $
$K	r   c                 B     U R                   S   $ ! [         a     g f = f)Nr   r.   
IndexErrorr/   s    r   r1   FFmpegError.filenameY   '    	99Q< 		    
c                 B     U R                   S   $ ! [         a     g f = f)Nr    r6   r8   s    r   r2   FFmpegError.log`   r:   r;   c                 j   SnU R                   b  U SU R                    S3nU R                  b  U U R                   3nU R                  (       a  U SU R                  < 3nU R                  (       a@  U SU R                  S   R	                  5        SU R                  S   R	                  5        3nU$ )N z[Errno ] : ; last error log: [r   r   )r+   r,   r1   r2   stripr/   msgs     r   __str__FFmpegError.__str__g   s    ::!EB/C==$E$--)C==EDMM,-C88%*488A;+<+<+>*?r$((1+BSBSBUAVW  
r   )r.   r+   r,   )NN)__name__
__module____qualname____firstlineno____doc__r*   propertyr1   r2   rF   __static_attributes____classcell__r3   s   @r   r   r   8   s?    (
      r   r   s   PyAVzError in PyAV callbackc                       \ rS rSrSrg)r   }    NrH   rI   rJ   rK   rN   rS   r   r   r   r   }       r   r   c                       \ rS rSrSrg)r      rS   NrT   rS   r   r   r   r      rU   r   r   c                       \ rS rSrSrg)r      rS   NrT   rS   r   r   r   r      rU   r   r   BSF_NOT_FOUNDBSFNotFoundErrorBUGBUFFER_TOO_SMALLDECODER_NOT_FOUNDDEMUXER_NOT_FOUNDENCODER_NOT_FOUNDEOFEOFErrorEXITEXTERNALFILTER_NOT_FOUNDINVALIDDATAInvalidDataErrorMUXER_NOT_FOUNDOPTION_NOT_FOUNDPATCHWELCOMEPatchWelcomeErrorPROTOCOL_NOT_FOUNDUNKNOWNEXPERIMENTALINPUT_CHANGEDOUTPUT_CHANGEDHTTP_BAD_REQUESTHTTPBadRequestErrorHTTP_UNAUTHORIZEDHTTPUnauthorizedErrorHTTP_FORBIDDENHTTPForbiddenErrorHTTP_NOT_FOUNDHTTPNotFoundErrorHTTP_TOO_MANY_REQUESTSHTTPTooManyRequestsErrorHTTP_OTHER_4XXHTTPOtherClientErrorHTTP_SERVER_ERRORHTTPServerErrorPYAV_CALLBACKPyAVCallbackErrorc                   D   ^  \ rS rSrU 4S jrS rSS jrS rS rSr	U =r
$ )	EnumType   c                 $   > [         TU ]  XX#5      $ r'   )r)   __new__)mclnamebasesattrsr.   r3   s        r   r   EnumType.__new__   s    ws%77r   c                 ^    0 U l         0 U l        / U l        U H  nU R                  " U6   M     g r'   )_by_name	_by_value_all_create)r/   r   r   r   itemsspecs         r   r*   EnumType.__init__   s-    	DLL$ r   c                      U R                   U   nU$ ! [         a     U " [        XU5      nXPR                   U'    U$ f = fr'   )r   KeyErrorsentinel)r/   r   valuedocby_value_onlyitems         r   r   EnumType._create   sL    	)>>%(D
 	  	)$s3D$(NN5!		)s    &==c                 ,    [        U R                  5      $ r'   )r!   r   r8   s    r   __len__EnumType.__len__   s    499~r   c                 ,    [        U R                  5      $ r'   )iterr   r8   s    r   __iter__EnumType.__iter__   s    DIIr   )r   r   r   )NF)rH   rI   rJ   rK   r   r*   r   r   r   rN   rO   rP   s   @r   r   r      s!    8  r   r   c                       \ rS rSrSr\R                  " \SS9r\R                  " \R                  SS9r
SS\S\R                  4S jjrS	 rS
 rS r\S 5       rSrg)EnumItem   zAn enumeration of FFmpeg's error types.

.. attribute:: tag

    The FFmpeg byte tag for the error.

.. attribute:: strerror

    The error message that would be returned.
readonly)
visibilityNr   r   c                     U[         La#  [        SU R                  R                   S35      eX l        X0l        X@l        g )NzCannot instantiate .)r   RuntimeErrorr3   rH   r   r   rL   )r/   	sentinel_r   r   r   s        r   	__cinit__EnumItem.__cinit__   s9    H$!4T^^5L5L4MQOPP	
r   c           	          SU R                   R                   SU R                   R                   SU R                   SU R                  S S3	$ )N<r   :z(0xxz)>)r3   rI   rH   r   r   r8   s    r   __repr__EnumItem.__repr__   sJ    4>>,,-Qt~~/F/F.GqSVW[WaWabcVddfggr   c                     U R                   $ r'   )r   r8   s    r   rF   EnumItem.__str__   s    yyr   c                     U R                   $ r'   )r   r8   s    r   __int__EnumItem.__int__   s    zzr   c                 ,    [        U R                  5      $ r'   )r   r   r8   s    r   r   EnumItem.tag   s    4::&&r   )rL   r   r   r'   )rH   rI   rJ   rK   rL   cythondeclarestrr   intr   r   r   rF   r   rM   r   rN   rS   r   r   r   r      sh    	 >>#*5DNN6::*=E VZZ h ' 'r   r   r
   rI   r   classesc                     [        [        U [        5      n[        U [        U4S[
        05      nU H  nU[        U'   M     U[        5       U '   [        R                  U 5        U$ )NrI   )
getattr__builtins__OSErrortyper   rH   r   globals__all__r(   )r   codesbaseclsr   s        r   _extend_builtinr      s[    <w/D
tk4(<*B
CC   GIdONN4Jr   PermissionErrorBlockingIOErrorChildProcessErrorConnectionAbortedErrorConnectionRefusedErrorConnectionResetErrorFileExistsErrorInterruptedErrorIsADirectoryErrorFileNotFoundErrorNotADirectoryErrorBrokenPipeErrorProcessLookupErrorTimeoutErrorMemoryErrorNotImplementedErrorOverflowErrorr   c                       \ rS rSrS rSrg)ArgumentErrori&  c                 h   SnU R                   b  U U R                    3nU R                  (       a  U SU R                  < 3nU R                  b  U SU R                   3nU R                  (       a@  U SU R                  S   R	                  5        SU R                  S   R	                  5        3nU$ )Nr?   rA   z
 returned rB   r   r@   r   )r,   r1   r+   r2   rC   rD   s     r   rF   ArgumentError.__str__'  s    ==$E$--)C==EDMM,-C::!EDJJ<0C88%*488A;+<+<+>*?r$((1+BSBSBUAVW  
r   rS   N)rH   rI   rJ   rK   rF   rN   rS   r   r   r   r   &  s    r   r   c                       \ rS rSrSrSrg)r   i7  zLFallback exception type in case FFmpeg returns an error we don't know about.rS   N)rH   rI   rJ   rK   rL   rN   rS   r   r   r   r   7  s    Vr   r   _r?   Errorc                    [        [        SS 5      nUb,  [        [        S5        [        R
                  " U6   [        S-  qU =(       d    [        R                  " 5       n U [        l        U (       a	  [        S-  q[        * $ )Nexc_infoz&PyAV library exception being dropped:
r   )
r   _localr   r   	tracebackprint_exception
_err_countsysr   c_PYAV_STASHED_ERROR)r   existings     r   stash_exceptionr   _  sf     vz40HAB!!8,a
)3<<>HFOa
   r   F)checkresc           	         [         (       a?  [        [        SS5      nUb+  [         S-  q S[        l        US   R	                  US   5      eU S:  a  U $ [        5       u  p4U[        :  a  UqUnOSnU * n[        R                  " [        R                  [        [        R                  [        R                  " [        5      -  5      5      nU[        R                  :X  a
  [!        5       e U["        :X  a  [$        nOD[        R&                  " X[        R                  5        U=(       d    [(        R*                  " U5      n[,        R/                  U[0        5      n	U	" XhX5      e! [3        U5        f = f)z6Raise appropriate exceptions from library return code.r   Nr   r   r   )r   r   r   r   with_tracebackr   _last_log_countr   castp_charr	   libAV_ERROR_MAX_STRING_SIZEsizeofcharNULLr   r   PYAV_STASHED_ERROR_messageav_strerrorosr,   r   getr   r   )
r   r1   r   	log_countlast_logr2   r   error_bufferr0   r   s
             r   	err_checkr   q  s$    z6:t4!OJ"FO1+,,Xa[99
ax
 )*I?"#tD"(++vc::V]]4=PPQ#L v{{"m''0GOOCs/K/KL"7bkk$&7Gkk$/$//\s   )A8E! !E.r'   ){r+   r   r   r   	threadingr   r   cython.cimportsr   r   cython.cimports.av.loggingr   cython.cimports.libc.stdior   r   cython.cimports.libc.stdlibr   r	   r   r   objectr   ccallr   r   r   r#   	Exceptionr   r   r   r   r   r   r   AVERROR_BSF_NOT_FOUNDAVERROR_BUGr   AVERROR_BUFFER_TOO_SMALLr"   AVERROR_DECODER_NOT_FOUNDAVERROR_DEMUXER_NOT_FOUNDAVERROR_ENCODER_NOT_FOUNDAVERROR_EOFrb   AVERROR_EXITAVERROR_EXTERNALAVERROR_FILTER_NOT_FOUNDAVERROR_INVALIDDATAAVERROR_MUXER_NOT_FOUNDAVERROR_OPTION_NOT_FOUNDAVERROR_PATCHWELCOMEAVERROR_PROTOCOL_NOT_FOUNDAVERROR_UNKNOWNAVERROR_EXPERIMENTALAVERROR_INPUT_CHANGEDAVERROR_OUTPUT_CHANGEDAVERROR_HTTP_BAD_REQUESTAVERROR_HTTP_UNAUTHORIZEDAVERROR_HTTP_FORBIDDENAVERROR_HTTP_NOT_FOUNDAVERROR_HTTP_TOO_MANY_REQUESTSAVERROR_HTTP_OTHER_4XXAVERROR_HTTP_SERVER_ERROR_ffmpeg_specsr   r   cclassr   rH   r
   enumr   r   r   r,   
av_err2strr   dict__annotations__r   EACCESEPERMEAGAINEALREADYEINPROGRESSEWOULDBLOCKECHILDECONNABORTEDECONNREFUSED
ECONNRESETEEXISTEINTREISDIRENOENTENOTDIREPIPE	ESHUTDOWNESRCH	ETIMEDOUTENOMEMENOSYSERANGE	errorcoder   r   EINVALr(   	enum_namer   r   titlereplacer   
issubclassr   r   r   r   cfuncr   	exceptvalr   )r   r   s   00r   <module>rG     s    	 
    ( 5 6 4 >>&&(+ fjj U  " 	FU 	Fvzz 	F 	F<) <@ ~~fjj+g2FG #^^C1IJ 	+{ 		 		k 	 s0002DkR
S__dL1#666jI3888$L3888$L3888$L
S__j(3cd+#&&&d3#666kJS,,,.@*M444dKH#666kJc...0CTJC:::D+N$$$dD1c...d;s000$=222D$?#6668M_3888:QSbc2224H/Z2224GY B BBD^`op2224JO\3888:KYW*,?N7@t < "' "' "'J (|X68V12A8V	
 DGIdiizz))2

{3    !ELL%++#> ? 
\\5>>5#4#4e6G6GH #ell_ 5 (5+=+=*? @ (5+=+=*? @ &)9)9(; < !ELL? 3 "U[[N 3 #ell_ 5 #ell_ 5 $u}}&6 7 !EKK#A B $u{{n 5  2 3  / % 7 %,, 1 	U__T_TG@SD_T UK "	[ 	 & *	/    $1ItT4?9??$,,S"5?D|	D+	&	&d#
tU\84
5C GDM GIdONN4# $1&  
	(^^FJJ*
..Q/ !fjj ! !" "E"+6:: + + # +E 9Wd Us   Y;%	Z 
2Z 
