
    3j6              	          S SK JrJrJr  S SKrS SKJr  S SKJ	r	J
r
J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 S	KJr  S S
KJr  \S   rS\R6                  S\4S jrS\S\R6                  4S jr\R<                  \R>                   " S S\	5      5       5       r \RB                  S\RD                  \RF                     S\R6                  S\ 4S j5       r$\RB                  \RJ                  \RL                  " SS9S\RN                  S\RD                  \   S\RP                  4S j5       5       5       r)\R<                  \R>                   " S S\	5      5       5       r*g)    )IteratorLiteralget_argsN)libav)Buffer
ByteSource
bytesource)	err_check)opaque_container)avrational_to_fractionto_avrational)	Py_DECREF	Py_INCREF)uint8_t)memcpy)(palettenew_extradataparam_changeh263_mb_inforeplay_gaindisplay_matrix	stereo_3daudio_service_typequality_statsfallback_trackcpb_propertiesskip_samplesjp_dual_monostrings_metadatasubtitle_positionmatroska_block_additionalwebvtt_identifierwebvtt_settingsmetadata_updatempegts_stream_idmastering_display_metadata	sphericalcontent_light_levela53_ccencryption_init_infoencryption_infoafdprfticc_profile	dovi_confs12m_timecodedynamic_hdr10_plusiamf_mix_gain_paramiamf_info_paramiamf_recon_gain_info_paramambient_viewing_environmentframe_croppinglcevc3d_reference_displaysrtcp_srdtypereturnc                 X    [        [        5      [        R                  " [        U 5         $ N)r   PktSideDataTcythoncastintr:   s    C/home/wildlama/miniconda3/lib/python3.13/site-packages/av/packet.pypacket_sidedata_type_to_literalrD   <   s    L!&++c5"9::    c                 >    [        [        5      R                  U 5      $ r=   )r   r>   indexrB   s    rC   !packet_sidedata_type_from_literalrH   @   s    L!''..rE   c                      \ rS rSr\S\S\S\4S j5       rS\	R                  S\R                  4S jrS	 rSS\S
\R                  4S jjr\S\4S j5       r\S\4S j5       r\S\4S j5       r\R.                  S\R                  4S j5       r\R.                  S\R2                  4S j5       r\R.                  S\R                  4S j5       rS\4S jrSrg)PacketSideDataD   packet	data_typer;   c                 D    [        U5      n[        U R                  U5      $ )aa  create new PacketSideData by copying an existing packet's side data

:param packet: Source packet
:type packet: :class:`~av.packet.Packet`
:param data_type: side data type
:return: newly created copy of the side data if the side data of the
         requested type is found in the packet, else an empty object
:rtype: :class:`~av.packet.PacketSideData`
)rH   _packet_sidedata_from_packetptr)rL   rM   r:   s      rC   from_packetPacketSideData.from_packetG   s     2)<+FJJ>>rE   r:   sizec                 x   Xl         [        R                     U(       ah  [        R                  " [        R                  [
        R                  " U5      5      U l        U R                  [        R                  :X  a  [        S5      eO[        R                  U l        S S S 5        X l
        g ! , (       d  f       N= f)NFailed to allocate memory)r:   r?   nogilr@   p_ucharlib	av_mallocdataNULLMemoryErrorrS   )selfr:   rS   s      rC   	__cinit__PacketSideData.__cinit__V   sr    
\\"KKd8KL	99+%&ABB , #KK	  	 \s   BB++
B9c                     [         R                     [        R                  " [         R                  " U R
                  5      5        S S S 5        g ! , (       d  f       g = fr=   )r?   rV   rX   av_freepaddressrZ   r]   s    rC   __dealloc__PacketSideData.__dealloc__a   s,    \\LL		23 \\   5A
Amovec                 n   U R                   S:X  a  gU R                  n[        R                     U(       d  [        R                  " [        R
                  [        R                  " U R                   5      5      nU[        R                  :X  a  [        S5      e[        X0R                  U R                   5        [        R                  " UR                  U R                  X0R                   5      nSSS5        [        W5        U(       a  [        R                  U l        SU l         gg! , (       d  f       N>= f)zcopy or move side data to the specified packet

:param packet: Target packet
:type packet: :class:`~av.packet.Packet`
:param move: True to move the data from this object to the packet,
             defaults to False.
:type move: bool
r   NrU   )rS   rZ   r?   rV   r@   rW   rX   rY   r[   r\   r   av_packet_add_side_datarP   r:   r
   )r]   rL   rg   rZ   ress        rC   	to_packetPacketSideData.to_packete   s     99>yy\\{{6>>3==3KL6;;&%&ABBtYY		2--fjj$**dIIVC  	#DIDI  \s   C D&&
D4c                 ,    [        U R                  5      $ )z0
The type of this packet side data.

:type: str
)rD   r:   rc   s    rC   rM   PacketSideData.data_type   s     /tzz::rE   c                 B    [         R                  " U R                  5      $ )z<
The description of this packet side data type.

:type: str
)rX   av_packet_side_data_namer:   rc   s    rC   	data_descPacketSideData.data_desc   s     ++DJJ77rE   c                     U R                   $ )z9
The size in bytes of this packet side data.

:type: int
rS   rc   s    rC   	data_sizePacketSideData.data_size   s     yyrE   c                     U R                   $ r=   rt   rc   s    rC   _buffer_sizePacketSideData._buffer_size       yyrE   c                     U R                   $ r=   )rZ   rc   s    rC   _buffer_ptrPacketSideData._buffer_ptr   rz   rE   c                     g)NT rc   s    rC   _buffer_writablePacketSideData._buffer_writable   s    rE   c                 <    U R                   [        R                  :g  $ )z3
True if this object holds side data.

:type: bool
)rZ   r?   r[   rc   s    rC   __bool__PacketSideData.__bool__   s     yyFKK''rE   )rZ   r:   rS   NF)__name__
__module____qualname____firstlineno__staticmethodPacketr>   rJ   rQ   rX   AVPacketSideDataTyper?   size_tr^   rd   bintrk   propertystrrM   rq   rA   ru   cfuncrx   p_voidr|   r   boolr   __static_attributes__r   rE   rC   rJ   rJ   D   s*    ?F ?| ? ? ?	s77 	v}} 	4 fkk : ;3 ; ; 83 8 8 3   \\fmm   \\V]]   \\&++  ($ (rE   rJ   rL   c                    [         R                     [        R                  " U R                  U R
                  U5      nU[         R                  :g  nS S S 5        [        UW(       a  WR                  OS5      n[         R                     U(       a+  [        UR                  WR                  UR                  5        S S S 5        U$ ! , (       d  f       Nz= f! , (       d  f       U$ = f)Nr   )r?   rV   rX   av_packet_side_data_get	side_dataside_data_elemsr[   rJ   rS   r   rZ   )rL   r:   c_ptrfoundsdatas        rC   rO   rO      s     
++f44e
 #fkk1	 
 5%**1=E	5::uzz5::6 
 L 
 
 Ls   A C3C
C
C%F)checkopaquerZ   c                     U [         R                  :w  a>  [         R                     [        [         R                  " [
        U 5      5        S S S 5        g g ! , (       d  f       g = fr=   )r?   r[   gilr   r@   object)r   rZ   s     rC   _python_freer      s<     ZZfkk&&12 Z Zs   %A
A"c                   h   \ rS rSrSrS-S jrS rS-S jrS r\	R                  S\	R                  4S	 j5       r\	R                  S\	R                  4S
 j5       r\	R                  S\R                   4S j5       rS r\S 5       r\S 5       r\R,                  S\4S j5       r\S 5       r\R,                  S 5       r\S 5       r\R,                  S 5       r\S 5       r\R,                  S 5       r\S 5       r\S 5       r\S 5       r\R,                  S 5       r\S 5       r\R,                  S 5       r\S 5       r\R,                  S 5       r\S  5       r \S! 5       r!\S" 5       r"\S# 5       r#\#R,                  S$ 5       r#S%\$S\%4S& jr&S%\$S\'4S' jr(S.S(\'S)\	RR                  4S* jjr*S\+\'   4S+ jr,S,r-g)/r      zA packet of encoded data within a :class:`~av.format.Stream`.

This may, or may not include a complete object within a stream.
:meth:`decode` must be called to extract encoded data.
Nc                     [         R                     [        R                  " 5       U l        S S S 5        g ! , (       d  f       g = fr=   )r?   rV   rX   av_packet_allocrP   )r]   inputs     rC   r^   Packet.__cinit__   s#    \\**,DH \\s	   5
Ac                     [         R                     [        R                  " [         R                  " U R
                  5      5        S S S 5        g ! , (       d  f       g = fr=   )r?   rV   rX   av_packet_freerb   rP   rc   s    rC   rd   Packet.__dealloc__   s.    \\v~~dhh78 \\rf   c           	      \   SnS nUc  g [        U[        5      (       a5  UnU(       a+  [        [        R                  " U R
                  U5      5        g g [        U5      nUR                  nU(       a  [        U5        [        R                  " UR
                  U[        [        R                  " [        R                  U5      S5      nU[        R                  :X  a  [        U5        [!        S5      eX@R
                  l        UR
                  U R
                  l        X R
                  l        g g )Nr   zCould not allocate AVBufferRef)
isinstancerA   r
   rX   av_new_packetrP   r	   lengthr   av_buffer_creater   r?   r@   r   r[   r   r\   bufrZ   rS   )r]   r   rS   sourcer   s        rC   __init__Packet.__init__   s    ! =eS!!D#++DHHd;<   &F==D&!**JJ KKv6 &++%f%%&FGG" &

 $ rE   c                 
   U R                   (       a  U R                   R                  OSnSU R                  R                   SU SU R                   SU R
                   SU R                  R                   S[        U 5      S S	3$ )
Nr   zav.z of #z, dts=z, pts=z; z bytes at 0xx>)	_streamrG   	__class__r   dtsptsrP   rS   idr]   streams     rC   __repr__Packet.__repr__  sq    '+||##$..))*%xvdhhZ HHH:Rl2d8A,aI	
rE   r;   c                 .    U R                   R                  $ r=   rP   rS   rc   s    rC   rx   Packet._buffer_size      xx}}rE   c                 .    U R                   R                  $ r=   )rP   rZ   rc   s    rC   r|   Packet._buffer_ptr  r   rE   dstc                    UR                   (       d  [        S5      eU R                  R                  R                   (       d  XR                  l        g U R                  R                  R                   UR                   :X  a/  U R                  R                  R                  UR                  :X  a  g [
        R                  " U R                  U R                  R                  U5        XR                  l        g )NzCannot rebase to zero time.)num
ValueErrorrP   	time_basedenrX   av_packet_rescale_ts)r]   r   s     rC   _rebase_timePacket._rebase_time  s    ww:;;xx!!%%!$HH88!!SWW,1C1C1G1G3771R  488+=+=sC rE   c                 8    U R                   R                  U 5      $ )z
Send the packet's data to the decoder and return a list of
:class:`.AudioFrame`, :class:`.VideoFrame` or :class:`.SubtitleSet`.
)r   decoderc   s    rC   r   Packet.decode#  s    
 ||""4((rE   c                 .    U R                   R                  $ r=   )rP   stream_indexrc   s    rC   r   Packet.stream_index*  s    xx$$$rE   c                     U R                   $ )z3
The :class:`Stream` this packet was demuxed from.
)r   rc   s    rC   r   Packet.stream.  s    
 ||rE   r   c                 Z    Xl         UR                  R                  U R                  l        g r=   )r   rP   rG   r   r   s     rC   r   r   5  s     &

 0 0rE   c                 h    [        [        R                  " U R                  R                  5      5      $ )zh
The unit of time (in fractional seconds) in which timestamps are expressed.

:type: fractions.Fraction
)r   r?   rb   rP   r   rc   s    rC   r   Packet.time_base:  s"     &fnnTXX5G5G&HIIrE   c                 l    [        U[        R                  " U R                  R                  5      5        g r=   )r   r?   rb   rP   r   )r]   values     rC   r   r   C  s    eV^^DHH,>,>?@rE   c                     U R                   R                  [        R                  :w  a  U R                   R                  $ g)z
The presentation timestamp in :attr:`time_base` units for this packet.

This is the time at which the packet should be shown to the user.

:type: int | None
N)rP   r   rX   AV_NOPTS_VALUErc   s    rC   r   
Packet.ptsG  s-     88<<3---88<< .rE   c                 j    Uc   [         R                  U R                  l        g XR                  l        g r=   )rX   r   rP   r   r]   vs     rC   r   r   S  !    9--DHHLHHLrE   c                     U R                   R                  [        R                  :w  a  U R                   R                  $ g)zW
The decoding timestamp in :attr:`time_base` units for this packet.

:type: int | None
N)rP   r   rX   r   rc   s    rC   r   
Packet.dtsZ  s-     88<<3---88<< .rE   c                 j    Uc   [         R                  U R                  l        g XR                  l        g r=   )rX   r   rP   r   r   s     rC   r   r   d  r   rE   c                 d    U R                   R                  S:w  a  U R                   R                  $ g)zv
The byte position of this packet within the :class:`.Stream`.

Returns `None` if it is not known.

:type: int | None
N)rP   posrc   s    rC   r   
Packet.posk  s'     88<<288<< rE   c                 .    U R                   R                  $ )z6
The size in bytes of this packet's data.

:type: int
r   rc   s    rC   rS   Packet.sizew  s     xx}}rE   c                     U R                   R                  [        R                  :w  a  U R                   R                  $ g)zj
The duration in :attr:`time_base` units for this packet.

Returns `None` if it is not known.

:type: int
N)rP   durationrX   r   rc   s    rC   r   Packet.duration  s1     88 2 2288$$$ 3rE   c                 j    Uc   [         R                  U R                  l        g XR                  l        g r=   )rX   r   rP   r   r   s     rC   r   r     s#    9 # 2 2DHH !HHrE   c                 b    [        U R                  R                  [        R                  -  5      $ r=   )r   rP   flagsrX   AV_PKT_FLAG_KEYrc   s    rC   is_keyframePacket.is_keyframe  s     DHHNNS%8%8899rE   c                     U(       a.  U R                   =R                  [        R                  -  sl        g U R                   =R                  [        R                  ) -  sl        g r=   )rP   r   rX   r   r   s     rC   r   r     s8    HHNNc111NHHNN 3 344NrE   c                 b    [        U R                  R                  [        R                  -  5      $ r=   )r   rP   r   rX   AV_PKT_FLAG_CORRUPTrc   s    rC   
is_corruptPacket.is_corrupt       DHHNNS%<%<<==rE   c                     U(       a.  U R                   =R                  [        R                  -  sl        g U R                   =R                  [        R                  ) -  sl        g r=   )rP   r   rX   r   r   s     rC   r   r     s8    HHNNc555NHHNN 7 788NrE   c                 b    [        U R                  R                  [        R                  -  5      $ r=   )r   rP   r   rX   AV_PKT_FLAG_DISCARDrc   s    rC   
is_discardPacket.is_discard  r   rE   c                 b    [        U R                  R                  [        R                  -  5      $ r=   )r   rP   r   rX   AV_PKT_FLAG_TRUSTEDrc   s    rC   
is_trustedPacket.is_trusted  r   rE   c                 b    [        U R                  R                  [        R                  -  5      $ r=   )r   rP   r   rX   AV_PKT_FLAG_DISPOSABLErc   s    rC   is_disposablePacket.is_disposable  s     DHHNNS%?%??@@rE   c                     U R                   R                  [        R                  LaW  [        R
                  " [        R                  " [        R                  U R                   R                  R                  5      5      $ g r=   )	rP   
opaque_refr?   r[   r   getr@   p_charrZ   rc   s    rC   r   Packet.opaque  sR    88fkk1#''FMM488+>+>+C+CD  2rE   c                     [         R                  " [        R                  " U R                  R
                  5      5        Uc  g [        R                  " U5      U R                  l        g r=   )rX   av_buffer_unrefr?   rb   rP   r	  r   addr   s     rC   r   r    sB    FNN488+>+>?@9.2215rE   r:   c                     [        U5      n[        R                  " U R                  R                  U R                  R
                  U5      [        R                  :g  $ )z_True if this packet has the specified side data

:param dtype: side data type
:type dtype: str
)rH   rX   r   rP   r   r   r?   r[   )r]   r:   dtype2s      rC   has_sidedataPacket.has_sidedata  sJ     359''""DHH$<$<f {{	
rE   c                 ,    [         R                  X5      $ )aP  get a copy of the side data

:param dtype: side data type (:meth:`~av.packet.PacketSideData.sidedata_types` for the full list of options)
:type dtype: str
:return: newly created copy of the side data if the side data of the
         requested type is found in the packet, else an empty object
:rtype: :class:`~av.packet.PacketSideData`
)rJ   rQ   )r]   r:   s     rC   get_sidedataPacket.get_sidedata  s     ))$66rE   sidedatarg   c                 &    UR                  X5        g)zcopy or move side data to this packet

:param sidedata: Source packet side data
:type sidedata: :class:`~av.packet.PacketSideData`
:param move: If True, move the data from `sidedata` object, defaults to False
:type move: bool
N)rk   )r]   r  rg   s      rC   set_sidedataPacket.set_sidedata  s     	4&rE   c              #      #    [        U R                  R                  5       H<  n[        U R                  U R                  R                  U   R
                  5      v   M>     g7f)zZiterate over side data of this packet.

:yield: :class:`~av.packet.PacketSideData` object
N)rangerP   r   rO   r   type)r]   is     rC   iter_sidedataPacket.iter_sidedata  sF      txx//0A.txx9K9KA9N9S9STT 1s   A!A#)r   rP   r=   r   ).r   r   r   r   __doc__r^   rd   r   r   r?   r   r   rx   r   r|   rX   
AVRationalr   r   r   r   r   setterStreamr   r   r   r   rS   r   r   r   r   r  r  r   r   r   r  rJ   r  r   r  r   r  r   r   rE   rC   r   r      s   -9%@
 \\fmm   \\V]]   \\! ! !) % %   ]]1V 1 1 J J A A 	  	  	ZZ      	ZZ  	  	    	% 	% __" " : : 5 5 > > 9 9 > > > > A A   ]]6 6
# 
$ 
	7# 	7. 	7'^ '6;; 'Ux7 UrE   r   )+typingr   r   r   r?   cython.cimportsr   rX   cython.cimports.av.bufferr   r   r	   cython.cimports.av.errorr
   cython.cimports.av.opaquer   cython.cimports.av.utilsr   r   cython.cimports.cpython.refr   r   cython.cimports.libc.stdintr   cython.cimports.libc.stringr   r>   r   rD   rH   finalcclassrJ   r   pointerAVPacketrO   rV   	exceptvalr   voidr   r   r   rE   rC   <module>r4     sr   . .  ( D D . 6 J < / .
 ')X;3+C+C ; ;/\ /c>V>V / k(V k(  k(\ NN3<<(141I1I $ 3MM3
..
!3 [[3   3 ZUV ZU  ZUrE   