
    V|hn-                     d   S SK r S SKrS SKrS SKrSSKJr  SSKJr  SSKJ	r	  \R                  " S5      r\R                  " S5      r\R                  " S	5      r\R                  " S
5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R                  " S5      r\R+                  S5      \R+                  S 5      S-  -   S-  \R+                  S5      -   rSrSrSrSrS rS rS rS r " S S\5      rg)    N   )
FragmentFD   )	HTTPError)RetryManagerz>Bz>Bxz>Hz>Hxxz>Iz>Qz>bxz>hz>hxxz>ii      i   @   c                 P    [         R                  S[        U5      -   5      U -   U-   $ )N   )u32packlen)box_typepayloads     O/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/downloader/ism.pyboxr      s$    88AG$%07::    c                 x    [        U [        R                  U5      [        R                  U5      SS  -   U-   5      $ )Nr   )r   u8r   r   )r   versionflagsr   s       r   full_boxr   #   s1    x)CHHUOAB,??'IJJr   c                    US   nUS   nUS   nUR                  SS5      nUR                  SS5      nUR                  SS	5      nUR                  S
S	5      nUS   n	[        [        R                  " 5       5      =pSnU[        R	                  S5      -  nUS-  nU R                  [        SU5      5        [        R	                  U
5      nU[        R	                  U5      -  nU[        R	                  U5      -  nU[        R	                  U5      -  nU[        R	                  S5      -  nU[        R	                  S5      -  nU[        R	                  S	5      -  nU[        R	                  S	5      S-  -  nU[        -  nU[        R	                  S	5      S-  -  nU[        R	                  S5      -  n[        SSS	U5      n[        R	                  U
5      nU[        R	                  U5      -  nU[        R	                  U5      -  nU[        R	                  S	5      -  nU[        R	                  U5      -  nU[        R	                  S	5      S-  -  nU[        R	                  S	5      -  nU[        R	                  S	5      -  nU[        R	                  U	S:X  a  SOS	5      -  nU[        R	                  S	5      -  nU[        -  nU[        R	                  U5      -  nU[        R	                  U5      -  n[        SS[        [         -  ["        -  U5      n[        R	                  U
5      nU[        R	                  U5      -  nU[        R	                  U5      -  nU[        R	                  U5      -  nU[        R	                  [%        US	   5      S-
  S-  [%        US   5      S-
  S-  -  [%        US   5      S-
  -  5      -  nU[        R	                  S	5      -  n[        SSS	U5      n[        R	                  S	5      nU	S:X  a&  US-  nU[        R	                  S	5      S-  -  nUS-  nOZU	S:X  a&  US-  nU[        R	                  S	5      S-  -  nUS-  nO.U	S :X  a&  US!-  nU[        R	                  S	5      S-  -  nUS"-  nO eU[        S#S	S	U5      -  nU	S:X  a<  [        R	                  S	5      nU[        R	                  S	5      -  n[        S$S	S	U5      nO\U	S:X  a?  [        R	                  S	5      nU[        R	                  S	5      S-  -  n[        S%S	SU5      nOU	S :X  a  [        S&S	S	S'5      nO eUn[        R	                  S5      nU[        S(S	[&        S'5      -  n[        S)S	S	U5      nU[        S*U5      -  n[        R	                  S5      n[(        R	                  S	5      S-  nU[        R	                  S5      -  nU	S:X  a  U[        R	                  S	5      S-  -  nU[        R	                  UR                  S+S5      5      -  nU[        R	                  UR                  S,S-5      5      -  nU[        R	                  S	5      -  nU[        R	                  S	5      -  nU[        R	                  US.   5      -  nUS/:X  a  [        S0U5      nUS1:X  a  [        S2U5      nGOU	S:X  Gac  U[        R	                  S	5      -  nU[        R	                  S	5      -  nU[        R	                  S	5      S-  -  nU[        R	                  U5      -  nU[        R	                  U5      -  nU[        R	                  S35      -  nU[        R	                  S35      -  nU[        R	                  S	5      -  nU[        R	                  S5      -  nU[(        R	                  S	5      S4-  -  nU[        R	                  S55      -  nU[        R	                  S65      -  n[*        R,                  " US7   R/                  5       5      nUS8;   Ga  UR1                  [        R	                  S5      5      SS  u  nn[(        R	                  S5      n U USS9 -  n U [(        R	                  S:UR                  S;S95      S-
  -  5      -  n U [(        R	                  S5      -  n U [        R	                  [3        U5      5      -  n U U-  n U [(        R	                  S5      -  n U [        R	                  [3        U5      5      -  n U U-  n U[        S<U 5      -  n[        S=U5      nO. eU	S :X  a$  US>:X  a  US?-  nUS@-  nUS@-  n[        SAU5      nO e eUW-  n[        SBS	S	U5      n![        R	                  S	5      n"U![        SCS	S	U"5      -  n![        R	                  S	5      n#U![        SDS	S	U#5      -  n![        R	                  S	5      n$U![        SES	S	U$5      -  n!U[        SFU!5      -  nU[        SGU5      -  nU[        SHU5      -  nU[        SIU5      -  n[        R	                  U5      n%[        SJSS	U%5      n&[        R	                  U5      n'U'[        R	                  S5      -  n'U'[        R	                  S	5      -  n'U'[        R	                  S	5      -  n'U'[        R	                  S	5      -  n'U&[        SKS	S	U'5      -  n&U[        SLU&5      -  nU R                  [        SMU5      5        g )NNtrack_idfourccduration	timescalei languageundheightr   widthstream_types   ismlr   s   piffiso2s   ftypr      l    s   mvhdaudios   tkhd`   
      s   mdhds   sounr   s   SoundHandler videos   vides   VideoHandler texts   subts   SubtitleHandler s   hdlrs   smhds   vmhds   sthdr   s   url s   drefs   dinfchannelsbits_per_sample   sampling_rateAACLs   mp4azEC-3s   ec-3H          codec_private_data)H264AVC1r	      nal_unit_length_fields   avcCs   avc1TTMLs   http://www.w3.org/ns/ttml     s   stpps   stsds   sttss   stscs   stcos   stbls   minfs   mdias   traks   mehds   trexs   mvexs   moov)getinttimer   r   writer   u64s1616s88u16unity_matrixr   s16u1616TRACK_ENABLEDTRACK_IN_MOVIETRACK_IN_PREVIEWordSELF_CONTAINEDr   binascii	unhexlifyencodesplitr   )(streamparamsr   r   r   r   r   r    r!   r"   creation_timemodification_timeftyp_payloadmvhd_payloadmoov_payloadtkhd_payloadtrak_payloadmdhd_payloadmdia_payloadhdlr_payloadsmhd_payloadmedia_header_boxvmhd_payloadminf_payloaddref_payloaddinf_payloadstsd_payloadsample_entry_payloadsample_entry_boxr3   spsppsavcc_payloadstbl_payloadstts_payloadstsc_payloadstco_payloadmehd_payloadmvex_payloadtrex_payloads(                                           r   write_piff_headerrm   '   s	   j!HHFj!H

;1Izz*e,HZZ!$FJJw"E'K(+DIIK(88MLCHHQKL%%L
LLWl+,88M*LCHH.//LCHHY''LCHHX&&LEJJqM!LCHHQKLCHHQKLCHHQK!O#LL LCHHQK!O#LCHHZ((LGQ<8L88M*LCHH.//LCHHX&&LCHHQKLCHHX&&LCHHQK!O#LCHHQKLCHHQKLCHH+"8Qa@@LCHHQKLL LEJJu%%LEJJv&&LGQ(FIY(Y[ghL88M*LCHH.//LCHHY''LCHHX&&LCHHs8A;/$62=3xPQ{CSVZCZ_`B`aehiqrsiteux|e|}~~LCHHQKLGQ<8L88A;Lga'))		a'))		a',,uHWaL99Lgxx{##GQ<@		xx{a'#GQ<@		#GQ37u#L88A;LHWa==LGQ<8LC..L88A;L771:>CHHQK'ga/J)B CC4Er)J KK++

6/+B CCV"7,@AV"7,@A		++a// 00

4 00

4 00++
R/.,%//7K0L0S0S0UV%%)//<QR@HC771:LC!H$LBGGDFJJ7NPQ,RUV,V$WXXLBGGAJ&LCHHSX..LCLBGGAJ&LCHHSX..LCL C$>> "7,@A5		V $BB  E)  E) "7,@A5u$$LGQ<8L88A;LHWaL99L88A;LHWaL99L88A;LHWaL99LC..LC..LC..LC..L88H%LGQ<8L88H%LCHHQKLCHHQKLCHHQKLCHHQKLHWaL99LC..L
LLWl+,r   c                 D   [         R                  " U 5      n [        R                  UR	                  S5      5      S   nUR	                  S5      nXAS   :X  a3  UR	                  US-
  5      n[        U5      S:X  a  U$ [        XQSS  5      $ UR                  US-
  S5        M  )Nr	   r   r   r   )ioBytesIOr   unpackreadr   extract_box_dataseek)databox_sequencedata_readerbox_sizer   box_datas         r   rs   rs      s    **T"K
::k..q1215##A&A&"''15H< A%#H12.>??Aq) r   c                       \ rS rSrSrS rSrg)IsmFD   z%
Download segments in a ISM manifest
c                    U R                   R                  SS5      (       a  US   S S OUS   nU[        U5      S.nU R                  XB5        UR	                  SSS05      nU R                   R                  SS	5      nS
nU GH  nUS-  nXtS   ::  a  M  [        U R                   R                  S5      U R                  Xv(       + S9n	U	 H  n
 U R                  XHS   U5      nU(       d      gU R                  U5      nUS   (       dF  [        U/ SQ5      n[        R                  USS 5      S
   US   S'   [        US   US   5        S	US'   U R                  XL5        M     U	R                  (       d  M  U(       d    gU R!                  U5        GM     U R#                  XB5      $ ! [         a  nXl         S nAM  S nAff = f)NtestF	fragmentsr   )filenametotal_fragsextra_stateism_track_writtenskip_unavailable_fragmentsTr   fragment_indexfragment_retries)
frag_indexfatalurl)s   moofs   trafs   tfhdr	   r   _download_paramsr   dest_stream)rO   r:   r    _prepare_and_start_frag_download
setdefaultr   report_retry_download_fragment_read_fragmentrs   r   rq   rm   _append_fragmentr   errorreport_skip_fragment_finish_frag_download)selfr   	info_dictsegmentsctxr   r   r   segmentretry_managerretrysuccessfrag_content	tfhd_dataerrs                  r   real_downloadIsmFD.real_download   s   15E2 29[)"1- )+ 6 	 !x=

 	--c=nn]5
  &*[[__5QSW%X"
G!OJ!122(9K)LdN_N_4>FdfM&"55c5>9UG"$#'#6#6s#;L&':;$4\C^$_	DGJJyYZ[\~D^_`Da	"45jA)#m*<iHZ>[\;?$78))#< '" """1 ))*57  : ))#99 ! "%Ks   F&-A2F&&
G0F<<G N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r   r   r   r{   r{      s    /:r   r{   ) rJ   ro   structr<   fragmentr   networking.exceptionsr   utilsr   Structr   u88rA   rD   r   r>   r@   rC   r?   s32r   rB   rE   rF   rG   rI   r   r   rm   rs   r{   r   r   r   <module>r      s    	     -  ]]4mmEmmDfmmDmmDmmEmmDfmmD!CHHQK!O3q8388J;OO ;Kp-f
*4:J 4:r   