
    ybj;              
          S SK Jr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\R2                  S\R2                  4S j5       5       r\R(                  S\R6                  " \R8                  5      S\R.                  S\R.                  4S j5       r\R<                  \R>                   " S S5      5       5       r g)    )IntEnumIntFlagN)	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'   \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SPLINEz#Emit verbose scaler info to the log
PRINT_INFOzFull chroma interpolationFULL_CHR_H_INTzFull chroma inputFULL_CHR_H_INPz
Direct BGR
DIRECT_BGRzAccurate roundingACCURATE_RNDzBit-exact outputBITEXACTzError diffusion ditherERROR_DIFFUSION 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   SWS_PRINT_INFOr   SWS_FULL_CHR_H_INTr   SWS_FULL_CHR_H_INPr   SWS_DIRECT_BGRr   SWS_ACCURATE_RNDr   SWS_BITEXACTr   SWS_ERROR_DIFFUSIONr   __static_attributes__r        ڐ/tmp/claude-0/-home-danvics-docker-quiz/c1e0577a-e42c-4a3d-b1ea-3edd61103a4e/scratchpad/stt/lib/python3.13/site-packages/av/video/reformatter.pyr
   r
   
   s    %6M?6'Hj'&1G#1A~(1E%1%D
%1=H.=&/E#/&D
&!,G,0:F-:8FJ5F2DN/D*<N'<-J-(8L%8#/H /0CO-Cr9   r
   c                   T    \ rS rSr\r\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SWS_CS_BT2020BT2020itu709fccitu601itu624	smpte170m	smpte240mdefaultbt2020r8   r    r9   r:   r<   r<      sR    F
CFF I IGFF
CFF I IGFr9   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)
ColorRange3   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_UNSPECIFIEDrZ   r&   AVCOL_RANGE_MPEGr[   AVCOL_RANGE_JPEGr\   AVCOL_RANGE_NBr]   r8   r    r9   r:   rW   rW   3   sE    !$!<!<K<474H4HD
1H+.+?+?D
(?..B.r9   rW   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&)'ColorTrc:   zmTransfer characteristic (gamma curve) of a video frame.

Maps to FFmpeg's ``AVColorTransferCharacteristic``.
zBT.709BT709rY   rZ   zGamma 2.2 (BT.470M)GAMMA22zGamma 2.8 (BT.470BG)GAMMA28z
SMPTE 170MrG   
SMPTE 240MrI   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__r^   AVCOL_TRC_BT709rf   r&   AVCOL_TRC_UNSPECIFIEDrZ   AVCOL_TRC_GAMMA22rg   AVCOL_TRC_GAMMA28rh   AVCOL_TRC_SMPTE170MrG   AVCOL_TRC_SMPTE240MrI   AVCOL_TRC_LINEARrk   AVCOL_TRC_LOGrl   AVCOL_TRC_LOG_SQRTrm   AVCOL_TRC_IEC61966_2_4rn   AVCOL_TRC_BT1361_ECGro   AVCOL_TRC_IEC61966_2_1rp   AVCOL_TRC_BT2020_10rq   AVCOL_TRC_BT2020_12rr   AVCOL_TRC_SMPTE2084rs   AVCOL_TRC_SMPTE428rt   AVCOL_TRC_ARIB_STD_B67ru   r8   r    r9   r:   rd   rd   :   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&Cr9   rd   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)ColorPrimariesS   zJColor primaries of a video frame.

Maps to FFmpeg's ``AVColorPrimaries``.
zBT.709 / sRGB / sYCCrf   rY   rZ   zBT.470MBT470MzBT.470BG / BT.601-6 625BT470BGzSMPTE 170M / BT.601-6 525rG   ri   rI   zGeneric film (Illuminant C)FILMzBT.2020 / BT.2100rM   zSMPTE 428-1 / XYZrt   zSMPTE 431-2 (DCI-P3)SMPTE431zSMPTE 432-1 (Display P3)SMPTE432zEBU 3213-E / JEDEC P22EBU3213r    N) r!   r"   r#   r$   rv   r^   AVCOL_PRI_BT709rf   r&   AVCOL_PRI_UNSPECIFIEDrZ   AVCOL_PRI_BT470Mr   AVCOL_PRI_BT470BGr   AVCOL_PRI_SMPTE170MrG   AVCOL_PRI_SMPTE240MrI   AVCOL_PRI_FILMr   AVCOL_PRI_BT2020rM   AVCOL_PRI_SMPTE428rt   AVCOL_PRI_SMPTE431r   AVCOL_PRI_SMPTE432r   AVCOL_PRI_EBU3213r   r8   r    r9   r:   r   r   S   s    
 %($7$7E!7!$!:!:K:,,FI,),)>)>G&>-0-D-DI*D!55I|5*-*<*<D
'<"%"6"6F6$'$:$:H!:'*'='=H$=+.+A+AH(A(+(=(=G%=r9   r   value
enum_classrT   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   rT   s      r:   _resolve_enum_valuer   g   sp     }%$${{%% &&&
ugT*2E2E1FG
HHr9   formatc                     U c  U$ [        U [        5      (       a%  [        R                  " [        U 5      R                  $ [        U 5      $ N)r   r   cythoncastpix_fmtr   )r   rT   s     r:   _resolve_formatr   x   s=     ~&+&&{{;/777vr9   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U[        :X  a  [         R                   U l        gg)zCSet AVFrame colorspace/range from SWS_CS_* and AVColorRange values.N)r^   r_   r   r   AVColorRanger   r>   AVCOL_SPC_BT709r   r@   AVCOL_SPC_FCCrB   AVCOL_SPC_SMPTE170MrH   AVCOL_SPC_SMPTE240MrL   AVCOL_SPC_BT2020_NCL)r   r   r   s      r:   _set_frame_colorspacer      s     c111"KK(8(8+F
 ]"..	z	!,,	}	$22	'	'22	}	$33 
%r9   c                   z   \ 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                  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                 p   [        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
[        [        R                  5      n[        U[        [        R                  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 R#                  UUUUUUUUUUUU5      $ )aX  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 scaling algorithm to use, or ``None`` for ``BILINEAR``.
    Option flags such as ``ACCURATE_RND`` or ``BITEXACT`` may be combined with
    the algorithm using ``|``, e.g. ``Interpolation.BILINEAR | Interpolation.ACCURATE_RND``.
: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   )r   r   r   r   r<   r   r   r
   r'   rW   rd   r^   rx   r   r   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_heights                           r:   reformatVideoReformatter.reformat   s&   \ 'v||/C/CD.J		(<(<
 /J		(<(<
 .=,
 0QO/QO .8S%>%>
 !41J1J!
 ,3+>A	','8eeiioo)/);vAQAQ~~!
 	
r9   r   r   
dst_formatr   r   r   r   r   r   r   r   c                    UR                   R                  (       aa  [        5       n[        [        R
                  " UR                   UR                   S5      5        UR                  USS9  UR                  5         Un[        5       nUR                  USS9  XNR                   l        X.R                   l	        X>R                   l
        U
[        R                  :g  nU[        R                  :g  nUR                   R                  nUR                   R                  nU(       a5  [        R                   " [        R"                  U
5      UR                   l        O>[        R                  UR                   l        [        R                  UR                   l        U(       a5  [        R                   " [        R$                  U5      UR                   l        O>[        R                  UR                   l        [        R                  UR                   l        UR                   R&                  nUR                   R(                  n[+        UR                   XX5        [+        UR                   Xi5        [-        UR                   UR                   5      S:g  nU(       aF  UUR                   l        UUR                   l        UUR                   l        UUR                   l        U$ U R                   [        R.                  :X  a8  [1        5       U l         U R                   [        R.                  :X  a  [3        S5      eXR                   l        [        R                   " [        R6                  U5      U R                   l        UR;                  XBU5        [        R<                     [?        U R                   UR                   UR                   5      nS S S 5        UUR                   l        UUR                   l        UUR                   l        UUR                   l        U(       d  UUR                   l        U(       d  UUR                   l        [        W5        U$ ! , (       d  f       N= f)Nr   F)data_layoutzCould not allocate SwsContext) r   hw_frames_ctxr   r   r^   av_hwframe_transfer_data_copy_internal_attributes_init_user_attributesr   r   r   rx   r   	color_trccolor_primariesr   r   AVColorTransferCharacteristicAVColorPrimariesr   r   r   sws_is_noopNULLsws_alloc_contextMemoryErrorr   uintflags_initr   sws_scale_frame)r   r   r   r   r   r   r   r   r   r   r   r   r   frame_sw	new_frameconvert_trcconvert_primariesframe_src_color_trcframe_src_color_primariesframe_src_colorspaceframe_src_color_rangeis_nooprets                          r:   r   VideoReformatter._reformat   s     99""(*Hc228<<ANO..u%.H**,E 1 3	++Eu+E)#% $1C4M4M#M3#<#<< 	 BGATAT:?)):S:S!&,kk11='IMM# #&";";EII&)&?&?IMM#,2KK$$&9-IMM) ),(A(AEII%,/,E,EIMM) 271E1E27))2G2GeiiIimm^M  +9==%))DI#7EII $9EII!"5EII(AEII%L88v{{"(*DHxx6;;&!"ABB"V[[-@ 	
62\\!$((IMM599EC   4		 5		1		$=		! &9IMM# ,EIMM)#% \s   ,Q
Q)r   )NNNNNNNNNNN)r!   r"   r#   r$   rv   r   
VideoFramer   r   cfuncr   r^   AVPixelFormatr   r8   r    r9   r:   r   r      s	   7  T
T
l \\gg zzg 

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

g 

g zzg  g  g zzg $ZZg g gr9   r   )!enumr   r   r   cython.cimports.libavcimportslibavr^   cython.cimports.av.errorr   cython.cimports.av.video.formatr   r   cython.cimports.av.video.framer   r
   r<   rW   rd   r   r   inlineobjectr   r   r   r   pointerAVFramer   finalcclassr   r    r9   r:   <module>r
     sd   !  # # . D <DG D* (/ /Dw D2>W >( II%I06

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

4 4 40 J J  Jr9   