
    `j                         d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZ ed          ZdZ	ej
        ZdZd Zd Zd Zd	 Zd
 Zd Zd Zedk    r e             dS dS )    )PathNzO/data/video-pipeline/HaTramAudio/project/029-Chiec-O-De-Lai-O-Tram-Xe-Buyt-Cuoizrun-20260722T162951Z-87a939adLevyc                      t           j                             t           j        j                                                                      dd          S )Nz+00:00Z)datetimenowtimezoneutc	isoformatreplace     work/verify_render.pyr   r      s<    "&&x'8'<==GGIIQQRZ[^__
_r   c                    t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                  .                          d          S )Ni   )read)fs   r   <lambda>zsha.<locals>.<lambda>	   s    qvvk** r   r   )hashlibsha256openiterupdate	hexdigest)phbr   s      @r   shar      s    
>ffTll <a****3//;;a;< < < < < < < < < < < < < < <	s   ,A##A'*A'c                     t          j        t          dz                                            } t          t
          t          d                                D ]0\  }}|                     |          |k    rt          d|z             1d S )Nz.ownership-lock.json)
project_idrun_idownerzownership mismatch: )
jsonloadsROOT	read_textPIDRUNOWNERitemsgetRuntimeError)dkvs      r   guardr1      s~    :t**557788s599??AA > >SQqUU1XXq[[|$:1$<===[> >r   c                 x    t          j        t          j        dddddddt	          |           g                    S )Nffprobez-verrorz-show_entrieszformat=duration,size,start_time:stream=index,codec_name,profile,codec_type,width,height,pix_fmt,field_order,r_frame_rate,sample_rate,channels,start_timez-ofr$   )r$   r%   
subprocesscheck_outputstr)r   s    r   prober8      si    
:*Id7?  Tn  ot  u{  |  @A  |B  |B  ,C  D  D  	E  	E  Er   c                     t                       |                     d| j        z   dz             }|                    t	          j        |dd          dz              t          j        ||            d S )N.z.tmpF   )ensure_asciiindent
)r1   	with_namename
write_textr$   dumpsosr   )pathr.   tmps      r   atomicrF      s    T^^C	M&011#..A[`hiAjAjAjkoAo2p2p2pqsq{|  AE  rF  rF  rF  rF  rFr   c                 (   d | d         D             }d | d         D             }t          |          dk    ot          |          dk    o|d                             d          dk    o|d                             d          d	k    o{|d                             d
          dk    o\|d                             d          dk    o=|d                             d          dk    o|d                             d          dk    |d         |d         fS )Nc                 D    g | ]}|                     d           dk    |S )
codec_typevideor,   .0xs     r   
<listcomp>zstreams_ok.<locals>.<listcomp>   s.    >>>1|!4!4g!=!=Q!=!=!=r   streamsc                 D    g | ]}|                     d           dk    |S )rI   audiorK   rL   s     r   rO   zstreams_ok.<locals>.<listcomp>   s3    B|B|B|_`_d_deq_r_rt{_{_{1_{_{_{r      r   
codec_nameh264widthi  heighti8  r_frame_ratez30/1aacsample_rate48000)lenr,   )prvsaus      r   
streams_okr`      s   >>9>>>B|B|bQZmB|B|B|rB
  	ps2wwz  	pbeii&=&=v&E  	p"Q%))T[J\J\^bJb  	pgijkglgpgpqygzgz  }A  hA  	p  FH  IJ  FK  FO  FO  P^  F_  F_  ag  Fg  	p  ln  op  lq  lu  lu  vB  lC  lC  EJ  lJ  	p  OQ  RS  OT  OX  OX  Yf  Og  Og  ip  Op  qs  tu  qv  wy  z{  w|  	|  |r   c                     t          j                    } |                     dg d           |                                 }t	                       t
          dz  |j        z  t          z  }t          j	        |dz  
                                          }t          j	        |dz  
                                          }t          j	        |dz  
                                          }t          j	        t
          dz  
                                          }|d	         }|                    d
          dk    s+|                    di                               d          durt          d          |j        dk    rt          |d                   }t
          dz  }	|d         d         d         }
t          j	        t
          dz  
                                          }t          |d                   }d                    t!          t"          |                    dg                               }ddd|v |                    d          du o|                    d          dk    |                    di                               d          du o|                    d          dk    od|v |                    d           du o|                    d!          du |                    d"          du |                    d#          |k    o7|                    d$          |
k    o|                    d%          |d&         k    d'}n|j        d(k    rt          |d)                   }t
          d*z  }	t          j	        t
          d+z  
                                          }t          j	        t
          dz  
                                          }|d         d         d         }
|d         d,         d         }t          |d-                   t          |d-                   z   }d|                    d.          d/k    |                    d.          d/k    |                    d0          |d1         k    o|                    d2          |d1         k    d3|v|                    d4          d5k    |                    d6          |k    |                    d$          |
k    |                    d#          |k    o=|                    d7          |d         k    o|                    d8          |d         k    d9	}n'|j        d:k    rt          |d)                   }t
          d;z  }	t          j	        t
          d*z  
                                          }|d         d         d         }
|d         d,         d         }t          |d-                   }d                    t!          t"          |                    dg                               }dd|v |                    d<          |d         k    |                    d6          |k    |                    d$          |
k    d=}|                                r|                                j        d>k    rt          d?          |j        d:k    rX|                    |                                j        d@k     dA|                                j        cxk    od@k     nc dB           t-          |          }t/          |          \  }}}t          |dC         dD                   }|                    ||                    dE          dFk    o|                    dG          dHv |                    dI          dJk    t1          ||z
            dKk    t1          t          |                    dL          pd>                    dMk     o4t1          t          |                    dL          pd>                    dMk     dN           |j        dk    r,|                    |t1          ||z
            dKk    dO           |j        d(k    rt1          ||z
            dKk    |dP<   t3          |                                          sAt          dQdR                    dS |                                D                       z             i dTdUdVt8          dWt          d
dddd#|dX|                    dY          d1t#          |          dt;          |          dZ|                                j        d-|d[d\d|d]d^d_d`dadbdcdddet=                      }|j        dk    r!|                    |d&         |
ddddf           |j        d(k    rH|                    |d         |d         ||
|d-         |d-         |                    d.          dg           |j        d:k    r.|                    |d         ||
|dh         |di         ddj           t?          |	|           tA          t          j!        |j        dd|d         |dZ         |dk                     d S )lNstage)footagefinal	transcode)choicesworkzterminal-response.jsonzrequest-bindings.jsonzrequest.jsonzscript/project-manifest.jsoncanon_sha256status	completedverificationverifiedTz#server terminal verification failedrc   outputzlog/footage-render.jsongate_eventslayoutartifact_sha256zscript/tts-manifest.jsonoutput_duration command
h264_nvencmirror_requiredexpected_horizontal_transformhflipmirror_appliedhorizontal_mirrorsource_audio_must_be_discarded'production_narration_must_be_only_audiosource_audio_discardedsource_canon_sha256source_layout_sha256source_audio_sha256output_sha256)terminal_completedserver_verifiedgpu_nvenc_encodermirror_intent_boundrx   source_audio_intent_boundr|   bindings_matchrd   output_video_pathzlog/final-render.jsonzlog/intro-render.jsonposterduration_secondspackaging_modestream_copyintro_video_pathartifact_pathfootage_video_pathmain_audio_pathaudio_sourcefootage_video_audiosource_poster_sha256source_intro_sha256source_footage_sha256)	server_completed_verifiedstream_copy_requeststream_copy_terminalinput_order_intro_then_footageno_main_audio_pathaudio_source_footageposter_lineage_currentlayout_lineage_currentr   re   zlog/transcode-upload.jsonsource_final_sha256)r   r   source_final_bindingr   r   r   zoutput missingi ʚ;i6&)under_one_gbtarget_near_800mbformatdurationpix_fmtyuv420pfield_order>   NprogressiveprofileLCg?
start_timeg?)single_streamsvideo_contractaudio_contractduration_preservedtimestamps_start_zero)narration_single_audioduration_exactduration_sum_exactztechnical checks failed: ,c              3   $   K   | ]\  }}||V  d S )Nr   )rM   r/   r0   s      r   	<genexpr>zmain.<locals>.<genexpr>*   s0      TzTz[^[\]^xyTzUVTzTzTzTzTzTzr   schema_versionrS   r!   r"   job_ididartifact_bytestechnical_qapassedzeendpoint terminal verification + independent ffprobe + streaming SHA-256; no frame extraction/viewing)ri   rl   checksmethod
content_qanot_run_by_policyframe_qaprohibited_not_runhash_methodsha256_stream_8MiBcompleted_at)r   r~   ry   rx   r|   )r   r   r   r~   intro_duration_secondsfootage_duration_secondsr   target_output_bytesmax_output_bytes)r   r   r~   r   r   r   )rb   ri   rl   r   bytesr   )"argparseArgumentParseradd_argument
parse_argsr1   r&   rb   r)   r$   r%   r'   r,   r-   r   floatjoinmapr7   is_filestatst_sizer   r8   r`   absallvaluesr+   r(   r   r   rF   printrB   )aargsrg   tr   reqmcanonoutreceiptro   ttsexpectedrs   r   introfootr   finr]   okr0   rR   r   r.   s                            r   mainr      s   Q^^G<[<[<[^\\\bcbnbnbpbp]aqvqxqxqx
6k$*S 4:t4L/L.W.W.Y.Y#Z#Z]a]gim  oF  jF  iQ  iQ  iS  iS  ^T  ^T[\  Y]  Yc  ei  jx  ex  dC  dC  dE  dE  YF  YF  UX  IM  IS  UY  Zx  Ux  TC  TC  TE  TE  IF  IF  GH  MN  O]  M^  GLEE(OO[  AEE.$<$<$@$@$L$LTX$X$X_k  mR  `S  `S  ZSJ	
3x=#$'@"@'-HXYaHbctHuz~  {E  GK  Lf  Gf  Fq  Fq  Fs  Fs  {t  {tvy  ~C  DG  HY  DZ  ~[  ~[  u}
((3s1552..//
0
0'#d|_fOf}~  ~C  ~C  DU  ~V  ~V  Z^  ~^  ~R  cd  ch  ch  iH  cI  cI  KR  cR  de  di  di  jx  y{  d|  d|  d@  d@  AQ  dR  dR  VZ  dZ  dY  _`  _d  _d  ex  _y  _y  {B  _B  dY  GN  RY  GY  vw  v{  v{  |\  v]  v]  ae  ve  vb  jk  jo  jo  pY  jZ  jZ  ^b  jb  |}  |A  |A  BZ  |[  |[  _c  |c  uv  uz  uz  {P	  uQ	  uQ	  S	X	  uX	  uy
  ]	^	  ]	b	  ]	b	  c	y	  ]	z	  ]	z	  |	B
  ]	B
  uy
  G
H
  G
L
  G
L
  M
b
  G
c
  G
c
  e
h
  i
x
  e
y
  G
y
  
z
  
z
&&
j'
3"#$$#T2I-IWPTPZ\`ax\x  \D  \D  \F  \F  QG  QG%  MQ  MW  Y]  ^w  Yw  XB  XB  XD  XD  ME  ME  HL  MN  O\  M]  ^f  Mg  hy  Mz  FL  BC  DQ  BR  S[  B\  ]n  Bo  {A  y~  D  EW  X  yY  yY  Z_  `d  ew  `x  Zy  Zy  yy  px&*IYAZAZ\iAi  BC  BG  BG  HX  BY  BY  [h  Bh  JM  JQ  JQ  Rd  Je  Je  gl  m|  g}  J}  Jv  BE  BI  BI  J^  B_  B_  ae  fu  av  Bv  L]  eh  Lh  @A  @E  @E  FT  @U  @U  Wl  @l  FK  FO  FO  Pf  Fg  Fg  io  Fo  IM  IQ  IQ  Rh  Ii  Ii  kq  Iq  C	D	  C	H	  C	H	  I	^	  C	_	  C	_	  a	f	  C	f	  C	]  k	l	  k	p	  k	p	  q	F
  k	G
  k	G
  I
N
  O
`
  I
a
  k	a
  C	]  f
g
  f
k
  f
k
  l
C  f
D  f
D  FJ  K\  F]  f
]  
^  
^&&
j+
3"#$$#T2M-MWRVR\^bcz^z  ^F  ^F  ^H  ^H  SI  SIc  QR  S`  Qa  bj  Qk  l}  Q~  JP  FG  HU  FV  W_  F`  ar  Fs  E  }B  CF  GY  CZ  }[  }[  t|
((3s1552..//
0
0'&*|w?Vnonsns  uJ  oK  oK  MP  Qb  Mc  oc  }@  }D  }D  E[  }\  }\  ^d  }d  ~A  ~E  ~E  F\  ~]  ~]  _e  ~e  
f  
f&S+Q..\BR5S5S/SJFMM#((**:L]:Zoz|  }E  }E  }G  }G  }O  p]  p]  p]  p]  P]  p]  p]  p]  p]  +^  +^  _  _  _	#JJ*R..zr!E%8Z8P2Q2QRXR_R_rt  GH  GL  GL  MV  GW  GW  Yb  Gb  GS  gh  gl  gl  mz  g{  g{  S  gS  ej  en  en  ox  ey  ey  {  e  UX  Ya  bj  Yj  Uk  Uk  mp  Up  IL  MR  ST  SX  SX  Ye  Sf  Sf  Sk  jk  Ml  Ml  Im  Im  nr  Ir  Id  wz  {@  AF  AJ  AJ  KW  AX  AX  A]  \]  {^  {^  w_  w_  `d  wd  ae  ae  Sf  Sf  SfJ	&--"VYZbckZkVlVlnqVq(r(rsssJS(9J5K5KS5P34FMMOO{<0KCHHTzTzbhbnbnbpbpTzTzTzLzLz0z#{#{{ mQ  m|C  m  mXk  m*UY  mZopu  mv~  @A  @E  @E  FJ  @K  @K  m  L[  \_  `c  \d  \d  m  ev  wz  {~  w  w  m  @P  QT  QY  QY  Q[  Q[  Qc  m  dv  w  m  @N  Ya  mq  {A  Kr  Os  Os  m  t@  AT  m  U_  `t  m  uB  CW  m  Xf  gj  gl  gl  mJ	!((#o:Nfl  BI  [_  y}  $~  $~      J>O8Pimn  jA  Y_  w}  W\  ]o  Wp  LP  Qc  Ld  vw  v{  v{  |L  vM  vM  "N  "N  O  O  OJAHHC@Q<Rjp  IO  fi  j  f@  TW  Xj  Tk  {  &@  &@  A  A  A5TZX\fghyfz  DE  FV  DW  ck  %l  %l  m  m  n  n  n  n  nr   __main__)pathlibr   r   r   r   r$   rC   r5   r&   r)   r@   r(   r*   r   r   r1   r8   rF   r`   r   __name__r   r   r   <module>r      s,         3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3	T
[\\  bA]`  FJ  FO  BE  V\  PU _ _ _  
> > >E E EF F F| | |o o o4 Zr   