Ë
    ÛÍ:j™1  ã            
       ó’  — d dl mZ d dlZd dlmc mZ d dlmZ d dl	m
Z
mZ d dlmZ  G d„ de«      Z G d„ d	e«      Z G d
„ de«      Z G d„ de«      Z G d„ de«      Zej&                  ej(                  dededej,                  dej,                  fd„«       «       Zej&                  ej(                  dedej0                  dej0                  fd„«       «       Zej&                  d ej4                  ej6                  «      dej,                  dej,                  fd„«       Zej:                  ej<                   G d„ d«      «       «       Zy)é    )ÚIntEnumN)Ú	err_check)ÚVideoFormatÚget_pix_fmt)Úalloc_video_framec                   ó¨   — e Zd ZU eZded<   eZded<   eZ	ded<   e
Zded<   eZd	ed
<   eZded<   eZded<   eZded<   eZded<   eZded<   eZded<   y)ÚInterpolationz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ÚSPLINEN)Ú__name__Ú
__module__Ú__qualname__ÚSWS_FAST_BILINEARr
   Ú__annotations__ÚSWS_BILINEARr   ÚSWS_BICUBICr   ÚSWS_Xr   Ú	SWS_POINTr   ÚSWS_AREAr   ÚSWS_BICUBLINr   Ú	SWS_GAUSSr   ÚSWS_SINCr   ÚSWS_LANCZOSr   Ú
SWS_SPLINEr   © ó    úi/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/av/video/reformatter.pyr	   r	   
   sx   … Ø%6€M�?Ó6Ø'€HˆjÓ'Ø&1€GÐ#Ó1Ø€A€~ÓØ(1€EÐ%Ó1Ø%€DÐ
Ó%Ø1=€HÐ.Ó=Ø&/€EÐ#Ó/Ø&€DÐ
Ó&Ø!,€GÐÓ,Ø0:€FÐ-Ô:r'   r	   c                   óD   — e Zd ZeZeZeZe	Z
eZeZeZeZeZeZe	ZeZeZeZy)Ú
ColorspaceN)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*      sH   „ Ø€FØ
€CØ€FØ€FØ €IØ €IØ€Gà€FØ
€CØ€FØ€FØ €IØ €IØ�Gr'   r*   c                   ó–   — e Zd ZU ej                  Zded<   ej                  Zded<   ej                  Z
ded<   ej                  Zded<   y	)
Ú
ColorRangeÚUnspecifiedÚUNSPECIFIEDz%MPEG (limited) YUV range, 219*2^(n-8)ÚMPEGzJPEG (full) YUV range, 2^n-1ÚJPEGzNot part of ABIÚNBN)r   r   r   ÚlibÚAVCOL_RANGE_UNSPECIFIEDrC   r   ÚAVCOL_RANGE_MPEGrD   ÚAVCOL_RANGE_JPEGrE   ÚAVCOL_RANGE_NBrF   r&   r'   r(   rA   rA   *   sE   … Ø!$×!<Ñ!<€K�Ó<Ø47×4HÑ4H€DÐ
1ÓHØ+.×+?Ñ+?€DÐ
(Ó?Ø×.Ñ.€BÐÔ.r'   rA   c                   óT  — e Zd ZU dZej
                  Zded<   ej                  Z	ded<   ej                  Zded<   ej                  Zded	<   ej                  Zd
ed<   ej                   Zded<   ej$                  Zded<   ej(                  Zded<   ej,                  Zded<   ej0                  Zded<   ej4                  Zded<   ej8                  Zded<   ej<                  Zded<   ej@                  Z!ded<   ejD                  Z#ded<   ejH                  Z%d ed!<   ejL                  Z'd"ed#<   y$)%ÚColorTrczuTransfer characteristic (gamma curve) of a video frame.

    Maps to FFmpeg's ``AVColorTransferCharacteristic``.
    zBT.709ÚBT709rB   rC   zGamma 2.2 (BT.470M)ÚGAMMA22zGamma 2.8 (BT.470BG)ÚGAMMA28z
SMPTE 170Mr4   ú
SMPTE 240Mr6   Ú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_B67N)(r   r   r   Ú__doc__rG   ÚAVCOL_TRC_BT709rN   r   ÚAVCOL_TRC_UNSPECIFIEDrC   ÚAVCOL_TRC_GAMMA22rO   ÚAVCOL_TRC_GAMMA28rP   ÚAVCOL_TRC_SMPTE170Mr4   ÚAVCOL_TRC_SMPTE240Mr6   ÚAVCOL_TRC_LINEARrS   ÚAVCOL_TRC_LOGrT   ÚAVCOL_TRC_LOG_SQRTrU   ÚAVCOL_TRC_IEC61966_2_4rV   ÚAVCOL_TRC_BT1361_ECGrW   ÚAVCOL_TRC_IEC61966_2_1rX   ÚAVCOL_TRC_BT2020_10rY   ÚAVCOL_TRC_BT2020_12rZ   ÚAVCOL_TRC_SMPTE2084r[   ÚAVCOL_TRC_SMPTE428r\   ÚAVCOL_TRC_ARIB_STD_B67r]   r&   r'   r(   rM   rM   1   s$  … ñð
 ×)Ñ)€Eˆ8Ó)Ø!$×!:Ñ!:€K�Ó:Ø%(×%:Ñ%:€GÐ"Ó:Ø&)×&;Ñ&;€GÐ#Ó;Ø!×5Ñ5€Iˆ|Ó5Ø!×5Ñ5€Iˆ|Ó5Ø×+Ñ+€FˆHÓ+Ø'*×'8Ñ'8€CÐ	$Ó8Ø58×5KÑ5K€HÐ2ÓKØ+.×+EÑ+E€LÐ(ÓEØ25×2JÑ2J€JÐ/ÓJØ+.×+EÑ+E€LÐ(ÓEØ"%×"9Ñ"9€IÐÓ9Ø"%×"9Ñ"9€IÐÓ9Ø*-×*AÑ*A€IÐ'ÓAØ!×4Ñ4€HˆmÓ4Ø),×)CÑ)C€LÐ&ÔCr'   rM   c                   óª  — e Zd ZU dZej
                  Zded<   ej                  Z	ded<   ej                  Zded<   ej                  Zded	<   ej                  Zd
ed<   ej                   Zded<   ej$                  Zded<   ej(                  Zded<   ej,                  Zded<   ej0                  Zded<   ej4                  Zded<   ej8                  Zded<   y)ÚColorPrimarieszRColor primaries of a video frame.

    Maps to FFmpeg's ``AVColorPrimaries``.
    zBT.709 / sRGB / sYCCrN   rB   rC   zBT.470MÚBT470MzBT.470BG / BT.601-6 625ÚBT470BGzSMPTE 170M / BT.601-6 525r4   rQ   r6   zGeneric film (Illuminant C)ÚFILMzBT.2020 / BT.2100ÚBT2020zSMPTE 428-1 / XYZr\   zSMPTE 431-2 (DCI-P3)ÚSMPTE431zSMPTE 432-1 (Display P3)ÚSMPTE432zEBU 3213-E / JEDEC P22ÚEBU3213N)r   r   r   r^   rG   ÚAVCOL_PRI_BT709rN   r   ÚAVCOL_PRI_UNSPECIFIEDrC   ÚAVCOL_PRI_BT470Mrr   ÚAVCOL_PRI_BT470BGrs   ÚAVCOL_PRI_SMPTE170Mr4   ÚAVCOL_PRI_SMPTE240Mr6   ÚAVCOL_PRI_FILMrt   ÚAVCOL_PRI_BT2020ru   ÚAVCOL_PRI_SMPTE428r\   ÚAVCOL_PRI_SMPTE431rv   ÚAVCOL_PRI_SMPTE432rw   ÚAVCOL_PRI_EBU3213rx   r&   r'   r(   rq   rq   J   sÒ   … ñð
 %(×$7Ñ$7€EÐ!Ó7Ø!$×!:Ñ!:€K�Ó:Ø×,Ñ,€FˆIÓ,Ø),×)>Ñ)>€GÐ&Ó>Ø-0×-DÑ-D€IÐ*ÓDØ!×5Ñ5€Iˆ|Ó5Ø*-×*<Ñ*<€DÐ
'Ó<Ø"%×"6Ñ"6€FÐÓ6Ø$'×$:Ñ$:€HÐ!Ó:Ø'*×'=Ñ'=€HÐ$Ó=Ø+.×+AÑ+A€HÐ(ÓAØ(+×(=Ñ(=€GÐ%Ô=r'   rq   ÚvalueÚ
enum_classr?   Úreturnc                 óÒ   — | €|S t        | |«      r| j                  S t        | t        «      r| S t        | t        «      r||    j                  S t	        d| › d|j
                  › �«      ‚)NzCannot convert z to )Ú
isinstancer…   ÚintÚstrÚ
ValueErrorr   )r…   r†   r?   s      r(   Ú_resolve_enum_valuer�   ^   sk   € ð €}ØˆÜ�%˜Ô$Ø�{‰{ÐÜ�%œÔØˆÜ�%œÔØ˜%Ñ ×&Ñ&Ð&Ü
� u g¨T°*×2EÑ2EÐ1FÐGÓ
HÐHr'   Úformatc                 óˆ   — | €|S t        | t        «      r$t        j                  t        | «      j                  S t        | «      S ©N)r‰   r   ÚcythonÚcastÚpix_fmtr   )rŽ   r?   s     r(   Ú_resolve_formatr”   o   s:   € ð €~ØˆÜ�&œ+Ô&Ü�{‰{œ;¨Ó/×7Ñ7Ð7Ü�vÓÐr'   ÚframeÚ
colorspaceÚcolor_rangec                 ót  — |t         j                  k7  r)t        j                  t         j                  |«      | _        |t        k(  rt         j                  | _        y|t        k(  rt         j                  | _        y|t        k(  rt         j                  | _        y|t        k(  rt         j                  | _        yy)zCSet AVFrame colorspace/range from SWS_CS_* and AVColorRange values.N)rG   rH   r‘   r’   ÚAVColorRanger—   r+   ÚAVCOL_SPC_BT709r–   r-   ÚAVCOL_SPC_FCCr/   ÚAVCOL_SPC_SMPTE170Mr5   ÚAVCOL_SPC_SMPTE240M)r•   r–   r—   s      r(   Ú_set_frame_colorspacerž   y   s‹   € ð ”c×1Ñ1Ò1Ü"ŸK™K¬×(8Ñ(8¸+ÓFˆÔð
 ”]Ò"Ü×.Ñ.ˆÕØ	”zÒ	!Ü×,Ñ,ˆÕØ	”}Ò	$Ü×2Ñ2ˆÕØ	Ô'Ò	'Ü×2Ñ2ˆÕð 
(r'   c                   óœ  — e Zd ZdZd„ Z	 	 	 	 	 	 	 	 	 	 	 ddefd„Zej                  dedej                  dej                  de
j                  d	ej                  d
ej                  dej                  dej                  dej                  dej                  dej                  dej                  dej                  dej                  fd„«       Zy)ÚVideoReformatterzôAn 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                 óž   — t         j                  5  t        t        j                  | j                  «      «       d d d «       y # 1 sw Y   y xY wr�   )r‘   ÚnogilÚsws_free_contextÚaddressÚptr)Úselfs    r(   Ú__dealloc__zVideoReformatter.__dealloc__š   s3   € Ü�\‰\ñ 	7ÜœVŸ^™^¨D¯H©HÓ5Ô6÷	7÷ 	7ñ 	7ús   ‘)AÁANr•   c                 óH  — t        ||j                  j                  «      }t        |t        |j
                  j                  «      }t        |t        |j
                  j                  «      }t        |t        t        «      }t        |t        d«      }t        |	t        d«      }t        |
t        d«      }t        |t        d«      }|�|nd}|�|n|j
                  j                  }|�|n|j
                  j                  }|
du}|du}| j                  ||||||||||||||«      S )aw  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   rA   rM   rq   Ú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(   ÚreformatzVideoReformatter.reformatž   s3  € ôX ' v¨u¯|©|×/CÑ/CÓDˆÜ.ØœJ¨¯	©	×(<Ñ(<ó
Ðô /ØœJ¨¯	©	×(<Ñ(<ó
Ðô .Øœ=¬,ó
ˆô 0°ÄÈQÓOÐÜ/°ÄÈQÓOÐÜ-¨m¼XÀqÓIˆÜ 3Ø¤°ó!
Ðð ,3Ð+>¡ÀAˆ	Ø',Ð'8™e¸e¿i¹i¿o¹oˆØ)/Ð);™vÀÇÁ×AQÑAQˆð *7¸dÐ)BÐØ/BÈ$Ð/NÐà�~‰~ØØØØØØØØØØØ!ØØ#Øó
ð 	
r'   r©   rª   Ú
dst_formatr¬   r­   r®   r¯   r°   r±   r²   r¿   rÀ   r³   c                 ó¸  — |j                   j                  dk  rt        d«      ‚t        j                  t
        j                  |j                   j                  «      }||k(  rB||j                   j                  k(  r)||j                   j                  k(  r||k(  r||	k(  r|s|s|S |j                   j                  r™t        «       }t        t        j                  |j                   |j                   d«      «       |j                  |_        |j                  «        |}t        j                  t
        j                  |j                   j                  «      }| j                   t        j                  k(  r7t!        «       | _         | j                   t        j                  k(  rt#        d«      ‚|| j                   _        t        j                  t        j&                  |«      | j                   _        t        «       }|j+                  |«       |j-                  |||«       |j                   j.                  }|j                   j0                  }t3        |j                   ||«       t3        |j                   ||	«       t        j4                  5  t7        | j                   |j                   |j                   «      }d d d «       ||j                   _        ||j                   _        t        «       |r3t        j                  t
        j8                  |
«      |j                   _        |r3t        j                  t
        j<                  |«      |j                   _        |S # 1 sw Y   Œ¢xY w)Nr   zFrame does not have format set.zCould not allocate SwsContext) r¥   rŽ   rŒ   r‘   r’   rG   Ú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«   zVideoReformatter._reformató   sk  € ð$ �9‰9×Ñ˜aÒÜÐ>Ó?Ð?ä—[‘[¤×!2Ñ!2°E·I±I×4DÑ4DÓEˆ
ð ˜*Ò$Ø˜Ÿ™Ÿ™Ò(Ø˜%Ÿ)™)×*Ñ*Ò*Ø .Ò0Ø ?Ò2Ù%Ù+àˆLà�9‰9×"Ò"Ü(Ó*ˆHÜ”c×2Ñ2°8·<±<ÀÇÁÈAÓNÔOØ Ÿ9™9ˆHŒLØ×*Ñ*Ô,ØˆEÜŸ™¤S×%6Ñ%6¸¿	¹	×8HÑ8HÓIˆJà�8‰8”v—{‘{Ò"Ü(Ó*ˆDŒHØ�x‰xœ6Ÿ;™;Ò&Ü!Ð"AÓBÐBØ"ˆ�‰ÔÜŸ™¤V§[¡[°-Ó@ˆ�‰Œä 1Ó 3ˆ	Ø×+Ñ+¨EÔ2Ø�‰˜
 E¨6Ô2ð 27·±×1EÑ1EÐØ27·)±)×2GÑ2GÐÜ˜eŸi™i¨¸ÔIÜ˜iŸm™m¨^¸_ÔMä�\‰\ñ 	FÜ! $§(¡(¨I¯M©M¸5¿9¹9ÓEˆC÷	Fð  4ˆ�	‰	ÔØ 5ˆ�	‰	Ôä�#Œñ Ü&,§k¡kÜ×1Ñ1°=ó'ˆI�M‰MÔ#ñ #Ü,2¯K©KÜ×$Ñ$Ð&9ó-ˆI�M‰MÔ)ð Ð÷'	Fð 	Fús   Ê,MÍM)NNNNNNNNNNN)r   r   r   r^   r§   Ú
VideoFramerÁ   r‘   ÚcfuncrŠ   rG   rÄ   Úbintr«   r&   r'   r(   r    r    �   s'  „ ñò7ð ØØØØØØØØØ ØñS
àóS
ðj ‡\�\ðNàðNð �z‰zðNð —
‘
ð	Nð
 ×%Ñ%ðNð Ÿ
™
ðNð Ÿ
™
ðNð —z‘zðNð  Ÿ™ðNð  Ÿ™ðNð —z‘zðNð $ŸZ™ZðNð "Ÿ;™;ðNð "(§¡ðNð —‘òNó ñNr'   r    ) Úenumr   r‘   Úcython.cimports.libavÚcimportsÚlibavrG   Úcython.cimports.av.errorr   Úcython.cimports.av.video.formatr   r   Úcython.cimports.av.video.framer   r	   r*   rA   rM   rq   rÜ   ÚinlineÚobjectrŠ   r�   rÄ   r”   ÚpointerÚAVFramerž   ÚfinalÚcclassr    r&   r'   r(   ú<module>rë      sd  ðÝ ã ß #Ð #Ý .ß DÝ <ô;�Gô ;ô�ô ô$/�ô /ôDˆwô Dô2>�Wô >ð( ‡�Ø‡�ðIØðIØ%ðIØ06·
±
ðIà‡Z�ZòIó ó ðIð ‡�Ø‡�ð˜Fð ¨S×->Ñ->ð À3×CTÑCTò ó ó ðð ‡�ð3Øˆ6�>‰>˜#Ÿ+™+Ó&ð3à—
‘
ð3ð —‘ò3ó ð3ð, ‡�Ø‡�÷pð pó ó ñpr'   