
    3j1              
          S SK Jr  S SKrS SKJs  Jr  S SKJr  S SK	J
r
Jr  S SKJr   " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r\R&                  \R(                  S\S\S\R,                  S\R,                  4S j5       5       r\R&                  \R(                  S\S\R0                  S\R0                  4S j5       5       r\R&                  S\R4                  " \R6                  5      S\R,                  S\R,                  4S j5       r\R:                  \R<                   " S S5      5       5       rg)    )IntEnumN)	err_check)VideoFormatget_pix_fmt)alloc_video_framec                       \ rS rSr% \rS\S'   \rS\S'   \	r
S\S'   \rS\S	'   \rS
\S'   \rS\S'   \rS\S'   \rS\S'   \rS\S'   \rS\S'   \rS\S'   Srg)Interpolation
   zFast bilinearFAST_BILINEARBilinearBILINEARz2-tap cubic B-splineBICUBICExperimentalXzNearest neighbor / pointPOINTzArea averagingAREAzBicubic luma / Bilinear chromaBICUBLINzGaussian approximationGAUSSzUnwindowed SincSINCz3-tap sinc/sincLANCZOSzUnwindowed natural cubic splineSPLINE N)__name__
__module____qualname____firstlineno__SWS_FAST_BILINEARr   __annotations__SWS_BILINEARr   SWS_BICUBICr   SWS_Xr   	SWS_POINTr   SWS_AREAr   SWS_BICUBLINr   	SWS_GAUSSr   SWS_SINCr   SWS_LANCZOSr   
SWS_SPLINEr   __static_attributes__r       N/home/wildlama/miniconda3/lib/python3.13/site-packages/av/video/reformatter.pyr	   r	   
   sx    %6M?6'Hj'&1G#1A~(1E%1%D
%1=H.=&/E#/&D
&!,G,0:F-:r*   r	   c                   L    \ rS rSr\r\r\r	\
r\r\r\r\r\r\r\
r\r\r\rSrg)
Colorspace   r   N)r   r   r   r   SWS_CS_ITU709ITU709
SWS_CS_FCCFCCSWS_CS_ITU601ITU601SWS_CS_ITU624ITU624SWS_CS_SMPTE170M	SMPTE170MSWS_CS_SMPTE240M	SMPTE240MSWS_CS_DEFAULTDEFAULTitu709fccitu601itu624	smpte170m	smpte240mdefaultr)   r   r*   r+   r-   r-      sH    F
CFF I IGF
CFF I IGr*   r-   c                       \ rS rSr% \R
                  rS\S'   \R                  r	S\S'   \R                  rS\S'   \R                  rS\S	'   S
rg)
ColorRange*   UnspecifiedUNSPECIFIEDz%MPEG (limited) YUV range, 219*2^(n-8)MPEGzJPEG (full) YUV range, 2^n-1JPEGzNot part of ABINBr   N)r   r   r   r   libAVCOL_RANGE_UNSPECIFIEDrH   r   AVCOL_RANGE_MPEGrI   AVCOL_RANGE_JPEGrJ   AVCOL_RANGE_NBrK   r)   r   r*   r+   rE   rE   *   sE    !$!<!<K<474H4HD
1H+.+?+?D
(?..B.r*   rE   c                   \   \ rS rSr% Sr\R                  rS\S'   \R                  r
S\S'   \R                  rS\S'   \R                  rS	\S
'   \R                  rS\S'   \R"                  rS\S'   \R&                  rS\S'   \R*                  rS\S'   \R.                  rS\S'   \R2                  rS\S'   \R6                  rS\S'   \R:                  rS\S'   \R>                  r S\S'   \RB                  r"S\S'   \RF                  r$S\S '   \RJ                  r&S!\S"'   \RN                  r(S#\S$'   S%r)g&)'ColorTrc1   zmTransfer characteristic (gamma curve) of a video frame.

Maps to FFmpeg's ``AVColorTransferCharacteristic``.
zBT.709BT709rG   rH   zGamma 2.2 (BT.470M)GAMMA22zGamma 2.8 (BT.470BG)GAMMA28z
SMPTE 170Mr8   
SMPTE 240Mr:   LinearLINEARzLogarithmic (100:1 range)LOGz"Logarithmic (100*sqrt(10):1 range)LOG_SQRTzIEC 61966-2-4 (sRGB)IEC61966_2_4zBT.1361 extended colour gamut
BT1361_ECGzIEC 61966-2-1 (sYCC)IEC61966_2_1zBT.2020 10-bit	BT2020_10zBT.2020 12-bit	BT2020_12zSMPTE 2084 (PQ, HDR10)	SMPTE2084zSMPTE 428-1SMPTE428zARIB STD-B67 (HLG)ARIB_STD_B67r   N)*r   r   r   r   __doc__rL   AVCOL_TRC_BT709rT   r   AVCOL_TRC_UNSPECIFIEDrH   AVCOL_TRC_GAMMA22rU   AVCOL_TRC_GAMMA28rV   AVCOL_TRC_SMPTE170Mr8   AVCOL_TRC_SMPTE240Mr:   AVCOL_TRC_LINEARrY   AVCOL_TRC_LOGrZ   AVCOL_TRC_LOG_SQRTr[   AVCOL_TRC_IEC61966_2_4r\   AVCOL_TRC_BT1361_ECGr]   AVCOL_TRC_IEC61966_2_1r^   AVCOL_TRC_BT2020_10r_   AVCOL_TRC_BT2020_12r`   AVCOL_TRC_SMPTE2084ra   AVCOL_TRC_SMPTE428rb   AVCOL_TRC_ARIB_STD_B67rc   r)   r   r*   r+   rR   rR   1   s$   
 ))E8)!$!:!:K:%(%:%:G":&)&;&;G#;!55I|5!55I|5++FH+'*'8'8C	$8585K5KH2K+.+E+EL(E252J2JJ/J+.+E+EL(E"%"9"9I9"%"9"9I9*-*A*AI'A!44Hm4),)C)CL&Cr*   rR   c                      \ rS rSr% Sr\R                  rS\S'   \R                  r
S\S'   \R                  rS\S'   \R                  rS	\S
'   \R                  rS\S'   \R"                  rS\S'   \R&                  rS\S'   \R*                  rS\S'   \R.                  rS\S'   \R2                  rS\S'   \R6                  rS\S'   \R:                  rS\S'   Srg)ColorPrimariesJ   zJColor primaries of a video frame.

Maps to FFmpeg's ``AVColorPrimaries``.
zBT.709 / sRGB / sYCCrT   rG   rH   zBT.470MBT470MzBT.470BG / BT.601-6 625BT470BGzSMPTE 170M / BT.601-6 525r8   rW   r:   zGeneric film (Illuminant C)FILMzBT.2020 / BT.2100BT2020zSMPTE 428-1 / XYZrb   zSMPTE 431-2 (DCI-P3)SMPTE431zSMPTE 432-1 (Display P3)SMPTE432zEBU 3213-E / JEDEC P22EBU3213r   N) r   r   r   r   rd   rL   AVCOL_PRI_BT709rT   r   AVCOL_PRI_UNSPECIFIEDrH   AVCOL_PRI_BT470Mry   AVCOL_PRI_BT470BGrz   AVCOL_PRI_SMPTE170Mr8   AVCOL_PRI_SMPTE240Mr:   AVCOL_PRI_FILMr{   AVCOL_PRI_BT2020r|   AVCOL_PRI_SMPTE428rb   AVCOL_PRI_SMPTE431r}   AVCOL_PRI_SMPTE432r~   AVCOL_PRI_EBU3213r   r)   r   r*   r+   rw   rw   J   s    
 %($7$7E!7!$!:!:K:,,FI,),)>)>G&>-0-D-DI*D!55I|5*-*<*<D
'<"%"6"6F6$'$:$:H!:'*'='=H$=+.+A+AH(A(+(=(=G%=r*   rw   value
enum_classrC   returnc                     U c  U$ [        X5      (       a  U R                  $ [        U [        5      (       a  U $ [        U [        5      (       a  X   R                  $ [	        SU  SUR
                   35      e)NzCannot convert z to )
isinstancer   intstr
ValueErrorr   )r   r   rC   s      r+   _resolve_enum_valuer   ^   sp     }%$${{%% &&&
ugT*2E2E1FG
HHr*   formatc                     U c  U$ [        U [        5      (       a%  [        R                  " [        U 5      R                  $ [        U 5      $ N)r   r   cythoncastpix_fmtr   )r   rC   s     r+   _resolve_formatr   o   s=     ~&+&&{{;/777vr*   frame
colorspacecolor_rangec                    U[         R                  :w  a*  [        R                  " [         R                  U5      U l        U[        :X  a  [         R                  U l        gU[        :X  a  [         R                  U l        gU[        :X  a  [         R                  U l        gU[        :X  a  [         R                  U l        gg)zCSet AVFrame colorspace/range from SWS_CS_* and AVColorRange values.N)rL   rM   r   r   AVColorRanger   r/   AVCOL_SPC_BT709r   r1   AVCOL_SPC_FCCr3   AVCOL_SPC_SMPTE170Mr9   AVCOL_SPC_SMPTE240M)r   r   r   s      r+   _set_frame_colorspacer   y   s     c111"KK(8(8+F
 ]"..	z	!,,	}	$22	'	'22 
(r*   c                      \ rS rSrSrS r           SS\4S jjr\R                  S\S\R                  S\R                  S	\R                  S
\R                  S\R                  S\R                  S\R                  S\R                  S\R                  S\R                  S\R                  S\R                  S\R                  4S j5       rSrg)VideoReformatter   zAn object for reformatting size and pixel format of :class:`.VideoFrame`.

It is most efficient to have a reformatter object for each set of parameters
you will use as calling :meth:`reformat` will reconfigure the internal object.

c                     [         R                     [        [         R                  " U R                  5      5        S S S 5        g ! , (       d  f       g = fr   )r   nogilsws_free_contextaddressptr)selfs    r+   __dealloc__VideoReformatter.__dealloc__   s(    \\V^^DHH56 \\s   *A
ANr   c                 L   [        XAR                  R                  5      n[        U[        UR
                  R                  5      n[        U[        UR
                  R                  5      n[        U[        [        5      n[        U[        S5      n[        U	[        S5      n[        U
[        S5      n[        U[        S5      nUb  UOSnUb  UOUR
                  R                  nUb  UOUR
                  R                  nU
SLnUSLnU R                  UUUUUUUUUUUUUU5      $ )a  Create a new :class:`VideoFrame` with the given width/height/format/colorspace.

Returns the same frame untouched if nothing needs to be done to it.

:param int width: New width, or ``None`` for the same width.
:param int height: New height, or ``None`` for the same height.
:param format: New format, or ``None`` for the same format.
:type  format: :class:`.VideoFormat` or ``str``
:param src_colorspace: Current colorspace, or ``None`` for the frame colorspace.
:type  src_colorspace: :class:`Colorspace` or ``str``
:param dst_colorspace: Desired colorspace, or ``None`` for the frame colorspace.
:type  dst_colorspace: :class:`Colorspace` or ``str``
:param interpolation: The interpolation method to use, or ``None`` for ``BILINEAR``.
:type  interpolation: :class:`Interpolation` or ``str``
:param src_color_range: Current color range, or ``None`` for the ``UNSPECIFIED``.
:type  src_color_range: :class:`ColorRange` or ``str``
:param dst_color_range: Desired color range, or ``None`` for the ``UNSPECIFIED``.
:type  dst_color_range: :class:`ColorRange` or ``str``
:param dst_color_trc: Desired transfer characteristic to tag on the output frame,
    or ``None`` to preserve the source frame's value. This sets frame metadata only;
    it does not perform a pixel-level transfer function conversion.
:type  dst_color_trc: :class:`ColorTrc` or ``int``
:param dst_color_primaries: Desired color primaries to tag on the output frame,
    or ``None`` to preserve the source frame's value.
:type  dst_color_primaries: :class:`ColorPrimaries` or ``int``
:param int threads: How many threads to use for scaling, or ``0`` for automatic
    selection based on the number of available CPUs. Defaults to ``0`` (auto).

r   N)r   r   r   r   r-   r   r   r	   r   rE   rR   rw   widthheight	_reformat)r   r   r   r   r   src_colorspacedst_colorspaceinterpolationsrc_color_rangedst_color_rangedst_color_trcdst_color_primariesthreadsc_dst_formatc_src_colorspacec_dst_colorspacec_interpolationc_src_color_rangec_dst_color_rangec_dst_color_trcc_dst_color_primaries	c_threadsc_widthc_heightset_dst_color_trcset_dst_color_primariess                             r+   reformatVideoReformatter.reformat   s1   X 'v||/C/CD.J		(<(<
 /J		(<(<
 .=,
 0QO/QO-mXqI 3!
 ,3+>A	','8eeiioo)/);vAQAQ *7d)B/B$/N~~!#
 	
r*   r   r   
dst_formatr   r   r   r   r   r   r   r   r   r   c                    UR                   R                  S:  a  [        S5      e[        R                  " [
        R                  UR                   R                  5      nXO:X  aL  X!R                   R                  :X  a3  X1R                   R                  :X  a  Xe:X  a  X:X  a  U(       d	  U(       d  U$ UR                   R                  (       a  [        5       n[        [
        R                  " UR                   UR                   S5      5        UR                  Ul        UR                  5         Un[        R                  " [
        R                  UR                   R                  5      nU R                   [        R                  :X  a8  [!        5       U l         U R                   [        R                  :X  a  [#        S5      eXR                   l        [        R                  " [        R&                  U5      U R                   l        [        5       nUR+                  U5        UR-                  XBU5        UR                   R.                  nUR                   R0                  n[3        UR                   XX5        [3        UR                   Xi5        [        R4                     [7        U R                   UR                   UR                   5      nS S S 5        UUR                   l        UUR                   l        [        W5        U(       a4  [        R                  " [
        R8                  U
5      UR                   l        U(       a4  [        R                  " [
        R<                  U5      UR                   l        U$ ! , (       d  f       N= f)Nr   zFrame does not have format set.zCould not allocate SwsContext) r   r   r   r   r   rL   AVPixelFormatr   r   hw_frames_ctxr   r   av_hwframe_transfer_datapts_init_user_attributesNULLsws_alloc_contextMemoryErrorr   uintflags_copy_internal_attributes_initr   r   r   r   sws_scale_frameAVColorTransferCharacteristic	color_trcAVColorPrimariescolor_primaries)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
src_formatframe_sw	new_frameframe_src_colorspaceframe_src_color_rangerets                        r+   r   VideoReformatter._reformat   sM   $ 99a>??[[!2!2EII4D4DE
 $())***02%+L99""(*Hc228<<ANO 99HL**,ES%6%6		8H8HIJ88v{{"(*DHxx6;;&!"ABB"V[[-@ 1 3	++E2
62 271E1E27))2G2GeiiIimm^M\\!$((IMM599EC   4		 5		# &,kk11='IMM# #,2KK$$&9-IMM) ' \s   ,M..
M<)r   )NNNNNNNNNNN)r   r   r   r   rd   r   
VideoFramer   r   cfuncr   rL   r   bintr   r)   r   r*   r+   r   r      s'   7  S
S
j \\NN zzN 

	N
 %%N 

N 

N zzN  N  N zzN $ZZN ";;N "(N N Nr*   r   ) enumr   r   cython.cimports.libavcimportslibavrL   cython.cimports.av.errorr   cython.cimports.av.video.formatr   r   cython.cimports.av.video.framer   r	   r-   rE   rR   rw   r   inlineobjectr   r   r   r   pointerAVFramer   finalcclassr   r   r*   r+   <module>r      sb     # # . D <;G ; $/ /Dw D2>W >( II%I06

IZZI  I F S->-> 3CTCT    3>>#++&3

3 3 3, p p  pr*   