
    Pi.                         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j                            d          p# e	 e ej
                              dz            Zd Z	 	 	 	 ddZdS )	    N)PathGRADIO_TEMP_DIRgradioc                   K   ddl m} | }| g}	 |                    d          r|                    d          rt          |d                   }t          |d                   }||k     rt	          j        dt                    d         }t	          j        dt                    d         }	t	          j        d	t                    d         }
|                    ||	|
g           |dk    r ||d i|	d
| di          }t          j	        |j
                                        t          j        j        t          j        j        d d {V }|                                 d {V \  }} ||d i|
d| di          }t          j	        |j
                                        t          j        j        t          j        j        d d {V }|                                 d {V \  }}t	          j        dt                    d         }|                    |           t!          |d          5 }|dk    r[t"          j                            |	          r<t"          j                            |	          dk    r|                    d|	 d           t"          j                            |
          r<t"          j                            |
          dk    r|                    d|
 d           d d d            n# 1 swxY w Y   t"          j                            |          rt"          j                            |          dk    r} ||di|di          }t          j	        |j
                                        t          j        j        t          j        j        d d {V }|                                 d {V \  }}|}|	|
|fD ]F}	 t"          j                            |          rt#          j        |           7# t.          $ r Y Cw xY wd|v rJ|d         rA|d         }t1          |          D ](\  }}|                    d          r|d                             d          r|d                             d          r|d         d         }|d         d         }|                    d          }|                    dd          }t	          j        d| dt                    d         }|                    |           t3          |||||           d {V \  }}|                    |           |r"||k    r|| fvr|                    |           |}* ||d i|di          }t          j	        |j
                                        t          j        j        t          j        j        d d {V }|                                 d {V \  }}|j        dk    rt7          j        ||           |}t	          j        dt                    d         }|                    |            ||d i|d i          }t          j	        |j
                                        t          j        j        t          j        j        d d {V }|                                 d {V \  }}|j        dk    rlt"          j                            |          rMt"          j                            |          dk    r*t7          j        ||           |                    |           ||fS # t:          $ r t=          j                     | |fcY S w xY w)!Nr   FFmpegremove_segment_startremove_segment_endz_trimmed.mp4suffixdir   z_before.mp4z
_after.mp4z-t z4 -c:v libx264 -preset fast -crf 22 -c:a aac -r 30 -yinputsoutputsstdoutstderrz-ss z_concat.txtwzfile 'z'
z-f concat -safe 0z
-c copy -yzoom_effectsboundingBoxtopLeftbottomRightstart_frameduration       @_zoom_z.mp4z>-c:v libx264 -preset fast -crf 22 -c:a aac -r 30 -vsync cfr -yz_final_trimmed.mp4z;-ss 0.5 -c:v libx264 -preset fast -crf 22 -c:a aac -r 30 -y) ffmpyr   getfloattempfilemkstempDEFAULT_TEMP_DIRextendasynciocreate_subprocess_execcmdsplit
subprocessPIPEcommunicateappendopenospathexistsgetsizewriteunlinkOSError	enumeratezoom_in
returncodeshutilcopy	Exception	traceback	print_exc)
input_pathoutput_pathparamsr   current_input
temp_filesstartendsegment_outputbefore_segmentafter_segmentffprocessr   r   concat_fileffiler   ieffecttop_leftbottom_rightr   r   zoom_outputzoom_temp_filesfinal_trimmed_outputs                               q/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/gradio/screen_recording_utils.pyprocess_video_with_ffmpegrT      s     MJ_&::,-- Q	&**=Q2R2R Q	&!7899E3455Cs{{!)!1)/?" " "" "*!1(.>" " "" !) 0'-=! ! !! !!>>="QRRR199 -t4*,m%,m,m,m!  B %,$B&16&16% % %      G
 ,3+>+>+@+@%@%@%@%@%@%@NFFV)40%'gc'g'g'g   !( >V\\^^"-2"-2! ! !      
 (/':':'<'<!<!<!<!<!<!<&.(.>   !!+...+s++ =q		GNN>:: "GOON;;a?? < < < <===}55=GOOM::Q>> ; ; ; ;<<<= = = = = = = = = = = = = = = 7>>+.. 327??;3O3ORS3S3S +-@A!/ >  B %,$B&16&16% % %      G
 ,3+>+>+@+@%@%@%@%@%@%@NFF$2M+]KH  D7>>$// ,IdOOO"    V##~(>#!.1L&|44 4 4	6JJ}--4}-11)<<4 }-11-@@4
  &m4Y?H#)-#8#GL"(**]";";K%zz*c::H"*"2////5E# # ##K %%k2229@%xx: : 4 4 4 4 4 40K %%o666" 4{m'C'C(<<&--m<<<(3V!4(]
 
 
  6V\\^^%*%*
 
 
 
 
 
 
 
 

  '2244444444""K{333#'/'-= 
  
  

  	.///V!4($&c
 
 
  6V\\^^%*%*
 
 
 
 
 
 
 
 

  '2244444444 !##344 $ 45599K,k:::2333J&& & & &:%%%%&s]   H"\( 1B=K:.\( :K>>\( K>C	\( 3P ?\(  
P
\( PL\( (!]]r   c                   K   ddl m} g }	 | rt          j                            |           s| |fS |d}n*	 t          |          }n# t          t          f$ r d}Y nw xY w|ddg}|ddg}	 t          |d                   t          |d                   }}t          |d                   t          |d                   }
}	n'# t          t          t          f$ r d\  }}d\  }	}
Y nw xY wt          d	t          d
|                    }t          d	t          d
|                    }t          dt          d|	                    }	t          dt          d|
                    }
|	|k    rd\  }}	|
|k    rd\  }}
|	|z
  }|
|z
  }||	z   dz  }||
z   dz  }d } |||          } |||          }d}t          d|z  d|z            }d
}||z  }t          ||          }t          |d          }d|  d}t          j        |t          j        j        t          j        j                   d {V }|                                 d {V \  }}	 |                                                                }t          |          }n# t          t          f$ r d}Y nw xY wd}t          t          |          |          }t%          j        dt(                    d         }|                    |           t-          |dz            }t-          |dz            }t-          ||z            } d\  }!}"d                    g d| d||z   | z   |z    d| d| d| d| d | d| d|| z    d!| d| d"| d#| d$| d$|  d%| d&| d'| d(| d)| d*| d+|! d,|" d-          }# || d i|d.|# d/i0          }$|$j                                        }%t          j        |%t          j        j        t          j        j        d d {V }|                                 d {V \  }}|j        dk    r| |fS ||fS # t8          $ r t;          j                     | |fcY S w xY w)1Nr   r   <         ?      ?r   )rW   rW   )rX   rX   g        g?g?g      ?)rW   rX      c                 ^    | dk     rd| z
  }| ||dz  z  z
  S | dk    r| dz
  }| ||dz  z  z   S | S )Ng      ? )centersizedistance_from_centers      rS   calculate_proportional_offsetz.zoom_in.<locals>.calculate_proportional_offset   sY    ||'*V|$)=)C!DEE#'-|$)=)C!DEEM    g      @g?zWffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 ""r   g      $@g      >@z_zoomed.mp4r   )i  i8   z[0:v]zoompan=z='if(between(on,,z),if(lt(on-z),1+((z-1)*(on-z)/z),z-((z	-1)*((on--z))/z))),1)':x='iw*z	-iw/zoom*z':y='ih*z	-ih/zoom*z
':d=1:fps=z:s=xz[outv]z-filter_complex "zk" -map "[outv]" -map 0:a? -c:v libx264 -pix_fmt yuv420p -movflags +faststart -preset fast -r 30 -c:a aac -yr   )r   r   r.   r/   r0   r    
ValueError	TypeError
IndexErrormaxminr%   create_subprocess_shellr)   r*   r+   decodestripr!   r"   r#   r,   intjoinr'   r(   r&   r7   r:   r;   r<   )&r=   rN   rO   zoom_durationzoom_start_framer   rA   x1y1x2y2	box_width
box_heightbox_center_xbox_center_yr_   zoom_center_xzoom_center_ytarget_zoommax_zoom_by_sizesafety_margindynamic_max_zoomduration_cmdrH   r   r   outputvideo_durationfpsrP   zoom_in_frameszoom_out_frameshold_frameswidthheightcomplex_filterrG   	cmd_partss&                                         rS   r6   r6      sw      JH& 	*
!;!; 	*z))#!&#()9#:#:  	* & & &#%   & d|H $<L	 8A;''x{););B<?++U<?-C-CBB:z2 	  	  	 FBFB	  c#rll##c#rll##c#rll##c#rll##88FB88FBG	"W
R1}R1}	 	 	 65lINN55lJOOsYj0@AA+m;/==/55~q{~~~7%*%*
 
 
 
 
 
 
 
 

  '2244444444	"]]__**,,F"6]]NNI& 	" 	" 	"!NNN	" E-00.AA&mAQRRRSTU+&&&S1WcAg,,-#-.."v( ( ( ( ( ( 0( ( ( (3Cn3TWb3bet3t( ( ( ((( ( ( (+9( ( ( ( $( ( ( ( .>( ( ( ( BP( ( ( ( )	( ( ( ( ,:K+G	( ( ( (
  ( ( ( (  ( ( ( ( %5( ( ( ( @P( ( ( ( Sa( ( ( ( do( ( ( ( tC( ( ( ( #( ( ( ( .;( ( ( ( #( ( ( ( .;( ( ( ( ( ( ( ( ( ( ( (  ( ( ( ( ( ( 	  V%	 	 	 	
 
 
$ FLLNN	6%*%*
 
 
 
 
 
 
 
 

  '2244444444""z))J&& & & &:%%%%&s   $Q Q A Q AQ AQ -AC Q !C&#Q %C&&E#Q 
5J  ?Q  JQ JF8Q Q !Q76Q7)NNr   N)r%   r.   r8   r!   r;   pathlibr   environr   str
gettempdirr#   rT   r6   r[   r`   rS   <module>r      s     				            :>>"344 D				(*9 9 
e& e& e&T S& S& S& S& S& S&r`   