
    Xq_jy                         d dl 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d dlm	Z	  e	e
                                          j        d         ZdZdZd Zd ZddZd	 Zd
 Zedk    r e             dS dS )    N)Path   zhttp://192.168.1.104:8021z/stickman-render-gpuc                    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)handles   script/render-intro-endpoint.py<lambda>zsha256.<locals>.<lambda>   s    &++o">">     r   )hashlibsha256openiterupdate	hexdigest)pathdigestblockr	   s      @r
   r   r      s    ^F	4 !F>>>>DD 	! 	!EMM%    	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! s   ,A##A'*A'c                     t          j        dddddddddt          |           g
d	d	d	
          }t          j        |j                  S )Nffprobez-verrorz-show_entrieszformat=duration,sizez>stream=codec_type,codec_name,width,height,sample_rate,channelsz-ofjsonT)capture_outputtextcheck)
subprocessrunstrr   loadsstdout)r   results     r
   prober#      s[    ^tWo7M]63t99	

 	 	 	F :fm$$$r   c                    |d n(t          j        |d                              d          }t          j                            t          | z   ||rddini |rdnd          }t          j                            |d	
          5 }|j        dz  dk    rt          d|j         d|            t          j
        |          cd d d            S # 1 swxY w Y   d S )NFensure_asciiutf-8zContent-Typezapplication/jsonPOSTGET)dataheadersmethodiX  )timeoutd      zHTTP z: )r   dumpsencodeurllibrequestRequestBASEurlopenstatusRuntimeErrorload)r   payloadr*   r3   responses        r
   request_jsonr<   &   s0   ?44
7(O(O(O(V(VW^(_(_Dn$$t8<D!344"(vv5	 %  G 
				5	5 #?c!Q&&@x@@$@@AAAy""# # # # # # # # # # # # # # # # # #s   <CCCc                     | j                             dd           |                     | j        dz             }|                    t          j        |dd          dz   d	           t          j        ||            d S )
NTparentsexist_okz.partFr/   )r&   indent
r'   encoding)	parentmkdirwith_suffixsuffix
write_textr   r0   osreplace)r   valueparts      r
   atomic_jsonrN   4   s|    KdT222DK'122DOODJu5CCCdJU\O]]]JtTr   c                     t           dz  } t          j        |                     d                    }|d         }t           |d         z  }t           |d         z  }t           |d         z  }t           |d         z  }t           |d	         z  }t           |d
         z  }|                                s|                                rt          d          |                    di                               d          dk    s-|                    di                               d          dk    rt          d          t          j        |                    d                    }	t          j        |                    d                    }
|	                    d          dus|
                    d          durt          d          t          |          |	                    d          k    rt          d          |
                    di                               d          }|rE|                    d          |d         k    s&t          |          |                    d          k    rt          d          t          |          }t          |                    di                               dd                    }|dk    rt          d          t          d          }|                    d          d k    s|                    d!          durt          d"          |                    d#          d$k    s|                    d%          d&k    rt          d'          |j                            dd(           i d)d*t          j                    j        d d+          d,t!          |          |d-gd.t!          |          d/d d0t!          |          d1d2d3d4d5d6d7d8d9d:d;d<d=d<d>d?d@dAdBdCdDdCdEdCd<d<dF}t#          dG |d.         |d0         |d,         d         dH         fD                       st          dI          t          t$          |          }|                                r|                                j        dk    rt          dJ          t          |          }dK |                    dLg           D             }dM |                    dLg           D             }t          |                    di                               dd                    }|                    d          dNv |                    d0|                    dOt!          |                              t!          |          k    t-          |          dPk    o|d                             dQ          dRk    t-          |          dPk    t-          |          dPk    o9|d                             d1          |d                             d3          fdSk    t/          ||z
            dTk    |d/         d u o	|d;         d<u |                    d#          d$k    |                    d%          d&k    dU	}t#          |                                          st          dV|           t2          j                            t2          j        j                                                  }i dddddWd	dX|                    dX          dYt<          dZt$          d)|d)         d[|d\         d]|d         d^t          |          d_|d         d`t          |          da|d         dbt          |          dc|d         ddt          |          de||d	         t          |          |                                j        ||||||df	}t?          ||           d|d         d	<   dd|d
         |dg         ||dh|d	<   ||di<   t?          | |           tA          t          j!        d|d)         ||dg         djd<k                     d S )lNzscript/project-manifest.jsonr'   rC   active_pathsintro_posterintro_audiointro_audio_receiptlayout_receiptintrointro_receiptz#intro output/receipt must be virginstepslayout	completedr7   z'layout and intro audio must be terminalverifiedTz&intro upstream receipt is not verifiedintro_full_sha256zintro audio hash drift	artifactsintro_normalizedr   r   z%normalized intro poster lineage driftformatdurationr   zintro audio duration invalidz/healthoknvenc_availablez"intro endpoint health/NVENC failedencoder
h264_nvenc
video_rootz/data/video-pipelinez)intro endpoint encoder/path policy failedr>   job_idzgac-mai-006-intro-   scenes)
image_pathr_   
audio_pathsubtitle_pathoutput_pathwidth  height8  fps   crf   presetp4burn_subtitlesF	ken_burnsmotion_presetnone
transitioncuttransition_durationg        fade_infade_out)slice_audioslice_subtitlesc              3   t   K   | ]3}t          t          |                                        d           V  4dS )z/data/video-pipeline/N)r   r   
startswith).0rL   s     r
   	<genexpr>zmain.<locals>.<genexpr>u   sW        f  fs4;;**+BCC  f  f  f  f  f  fr   rh   z%intro payload path outside video rootz-intro endpoint returned without closed outputc                 D    g | ]}|                     d           dk    |S )
codec_typevideogetr   rows     r
   
<listcomp>zmain.<locals>.<listcomp>|   /    YYYc8M8MQX8X8Xc8X8X8Xr   streamsc                 D    g | ]}|                     d           dk    |S )r   audior   r   s     r
   r   zmain.<locals>.<listcomp>}   r   r   )NrY   successr`   outputr   
codec_nameh264)rm   ro   g:m?)	endpoint_response_terminaloutput_path_exactone_h264_video	one_audio
resolutionduration_one_framesubtitles_disabledserver_encoderpath_policyzintro verification failed: stageservicebase_urlcreate_endpointsource_canon_sha256canon_sha256layout_receipt_pathlayout_receipt_sha256intro_audio_receipt_pathintro_audio_receipt_sha256poster_pathposter_sha256intro_audio_pathintro_audio_sha256input_duration_seconds)	rk   artifact_sha256artifact_bytesduration_secondsr3   terminal_responseindependent_probecheckscompleted_atr   )r7   rZ   receiptr   r   r   
updated_at)r7   re   r   r   r%   )"ROOTr   r    	read_textexistsr8   r   r   r#   floatr<   rE   rF   uuiduuid4hexr   allCREATEis_filestatst_sizelenabsvaluesdatetimenowtimezoneutc	isoformatr5   rN   printr0   )manifest_pathmanifestactiveposterr   audio_receipt_pathr   r   receipt_pathaudio_receiptrT   layout_introaudio_prober_   healthr:   r;   infovideosaudiosoutput_durationr   r   r   s                           r
   mainr   ;   sd	   99Mz-1171CCDDHn%FF>**F6-((E'< ==(8!99F7O#F&11L}} B,--// B@AAA||GR  $$X..+==m]_A`A`AdAdemAnAnr}A}A}DEEEJ1;;W;MMNNMZ 3 = =w = O OPPN$$D00N4F4Fz4R4RZ^4^4^CDDDe}}))*=>>>>3444!%%k266::;MNNL D<++F33vn7MMMQWX^Q_Q_cocscst|c}c}Q}Q}BCCC,,K[__Xr2266z1EEFFH1}}9:::)$$Fzz(t##vzz2C'D'DD'P'P?@@@zz),,

<0H0HLb0b0bFGGG
Mt444>tz||'7'<>>#f++8DDE 	c%jj 		
 	s6{{ 	 	$ 	r 	r 	$ 	% 	U 	 	e 	s  	3!" 	C#$  '  G*   f  fRYZfRgipq~i  BI  JR  BS  TU  BV  Wc  Bd  Re  f  f  f  f  f DBCCCFG,,H>> Lv{{}}499JKKK==DYYTXXi44YYYFYYTXXi44YYYFDHHXr2266z1EEFFO&.ll8&<&<@d&d%\\-hPSTZP[P[9\9\]]adekalallf++*Tvay}}\/J/Jf/T[[A%&kkQ&lF1IMM',B,BF1IMMRZD[D[+\`l+l!/H"<==O%o6$>e7K[C\`eCe **Y//<?zz,//3II
 
F v}} CAAABBB



 1 5
6
6
@
@
B
BC+D 	 	6::i((	
 	D 	6 	'(# 	x7 	v&67 	 (;!<!< 	#F+@$A 	%f-?&@&@ 	vn- 	 	F=1  	fUmm!" 	!(#$ g!&>> ++--/+%!5  G8 g&&&!,HWg/*"#45+ HW !H\x(((	$*wx7H^m  zA  BS  zT  U  U  di  j  j  j  k  k  k  k  kr   __main__)N)r   r   r   rJ   r   urllib.requestr2   r   pathlibr   __file__resolver?   r   r5   r   r   r#   r<   rN   r   __name__ r   r
   <module>r      s      				               tH~~'*"	  % % %# # # #  {k {k {k| zDFFFFF r   