#!/usr/bin/perl
#Shift et Scale les fichiers de sous titre de type .srt
my $shift = 4; #en secondes
my $scale = 25/23.9;
my $numD=2;my $heureD="00:00:20,000" ; my $numF=729; my $heureF="01:16:19,000";
my $fichier = $ARGV[0];
my $num=0; my @debut; my @fin; my @blabla;
open ($F,"<",$fichier);
while (my $in=<$F>){chop($in); my $nn=$num+1;
	if ($in=~m/^\d+$/){$num=$in;next;};
	if ($in=~m/\d --> \d/){$in=~m/^(.*?)-->(.*?)$/;$debut[$num]=$1; $fin[$num]=$2; $fin[$num]=~s/ //g; $debut[$num]=~s/ //g; $blabla[$num]="";next;};
	if ($blabla[$num]){$blabla[$num]=$blabla[$num]."\n".$in;} else {$blabla[$num]=$in;};
	};
my $x0=HtoN($debut[$numD]); my $x1=HtoN($debut[$numF]); my $y0=HtoN($heureD); my $y1=HtoN($heureF);
if ($x1==$x0){print ("problème de division par zéro : $x1 - $y1\n");};
my $scale=($y1-$y0)/($x1-$x0); $shift = $y0-$scale*$x0;
for my $i (1..$num){
	my $d=HtoN($debut[$i]);
	$fin[$i]=~m/(\d\d):(\d\d):(\d\d,\d\d\d)/;$min=$2;$h=$1;my $f=$3;$f=~s/,/\./;$f=$f+$min*60+$h*3600;
	$d=$d*$scale+$shift;$f=$f*$scale+$shift;
	my $hd = int($d/3600); my $md = int(($d-$hd*3600)/60); my $sd=$d-$hd*3600-$md*60;
	$hd=sprintf("%02.0f",$hd); $md=sprintf("%02.0f",$md); $sd=sprintf("%06.3f",$sd);$sd=~s/\./,/;
	my $hf = int($f/3600); my $mf = int(($f-$hf*3600)/60); my $sf=$f-$hf*3600-$mf*60;
	$hf=sprintf("%02.0f",$hf); $mf=sprintf("%02.0f",$mf); $sf=sprintf("%06.3f",$sf);$sf=~s/\./,/;
	print ("$i\n$hd:$md:$sd --> $hf:$mf:$sf\n$blabla[$i]\n");
	};
	
sub HtoN {
	my $h=$_[0];
	$h=~m/(\d\d):(\d\d):(\d\d,\d\d\d)/;my $min=$2;my $h=$1;my $d=$3;$d=~s/,/\./;$d=$d+$min*60+$h*3600;
	return $d;
	};
