121 lines
3.3 KiB
Perl
121 lines
3.3 KiB
Perl
|
#!/usr/bin/perl
|
||
|
|
||
|
#parse test codec output files and give wiki formatted results.
|
||
|
|
||
|
|
||
|
if(scalar(@ARGV) != 2 && scalar(@ARGV) != 1){
|
||
|
print "Usage: parser_testcodec.pl new_results old_results (compares two results)\n".
|
||
|
" parser_testcodec.pl new_results (formats just one result)\n";
|
||
|
}
|
||
|
|
||
|
my %newfile;
|
||
|
|
||
|
#open new benchmark file
|
||
|
open FILE, $ARGV[0];
|
||
|
while ($line = <FILE>){
|
||
|
chomp $line;
|
||
|
$filename=$line;
|
||
|
#print $filename."\n";
|
||
|
|
||
|
$line = <FILE>;
|
||
|
$line = <FILE>;
|
||
|
$line =~ m/-\s([0-9\.]*)s/;
|
||
|
$decodetime = $1;
|
||
|
|
||
|
$line = <FILE>;
|
||
|
$line = <FILE>;
|
||
|
$line =~ m/([0-9\.]*)\%/;
|
||
|
$realtime = $1;
|
||
|
|
||
|
$line = <FILE>;
|
||
|
$line =~ m/([0-9\.]*)MHz/;
|
||
|
$mhz=$1;
|
||
|
#consume blank line
|
||
|
$line = <FILE>;
|
||
|
|
||
|
#store in hash
|
||
|
$newfile{$filename} = [$realtime, $mhz, $decodetime];
|
||
|
|
||
|
#| flac_5.flac | 175906 of 175906 | Decode time - 27.74s | File duration - 175.90s | 634.10% realtime | 12.61MHz |
|
||
|
#print "| $filename | Decode time - $decodetime"."s | $realtime"."% realtime | $mhz"."MHz |\n";
|
||
|
#print "$filename\t$realtime\t$mhz\n";
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
#open old benchmark file
|
||
|
my %oldfile;
|
||
|
open FILE, $ARGV[1];
|
||
|
while ($line = <FILE>){
|
||
|
chomp $line;
|
||
|
$filename=$line;
|
||
|
#print $filename."\n";
|
||
|
|
||
|
$line = <FILE>;
|
||
|
$line = <FILE>;
|
||
|
$line =~ m/-\s([0-9\.]*)s/;
|
||
|
$decodetime = $1;
|
||
|
|
||
|
$line = <FILE>;
|
||
|
$line = <FILE>;
|
||
|
$line =~ m/([0-9\.]*)\%/;
|
||
|
$realtime = $1;
|
||
|
|
||
|
$line = <FILE>;
|
||
|
$line =~ m/([0-9\.]*)MHz/;
|
||
|
$mhz=$1;
|
||
|
|
||
|
#consume blank line
|
||
|
$line = <FILE>;
|
||
|
|
||
|
#store in hash
|
||
|
$oldfile{$filename} = [$realtime, $mhz, $decodetime];
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
my @keylist;
|
||
|
|
||
|
@keylist = sort {$a cmp $b} keys(%newfile);
|
||
|
#print for wiki
|
||
|
my $oldkey = "nothing_";
|
||
|
foreach $key (@keylist){
|
||
|
|
||
|
#check if this is a new format and add the table heading
|
||
|
$oldkey =~ m/([a-z1-9]*)/;
|
||
|
|
||
|
if(!($key =~ m/$1_/i)){
|
||
|
print "| *MP3* |||||\n" if($key =~ m/lame/);
|
||
|
print "| *AAC-LC* |||||\n" if($key =~ m/nero/);
|
||
|
print "| *Vorbis* |||||\n" if($key =~ m/vorbis/);
|
||
|
print "| *WMA Standard* |||||\n" if($key =~ m/wma_/);
|
||
|
print "| *WAVPACK* |||||\n" if($key =~ m/wv/);
|
||
|
print "| *Nero AAC-HE* |||||\n" if($key =~ m/aache/);
|
||
|
print "| *Apple Lossless* |||||\n" if($key =~ m/applelossless/);
|
||
|
print "| *Monkeys Audio* |||||\n" if($key =~ m/ape/);
|
||
|
print "| *Musepack* |||||\n" if($key =~ m/mpc/);
|
||
|
print "| *FLAC* |||||\n" if($key =~ m/flac/);
|
||
|
print "| *Cook (RA)* |||||\n" if($key =~ m/cook/);
|
||
|
print "| *AC3 (A52)* |||||\n" if($key =~ m/a52/);
|
||
|
print "| *atrac3* |||||\n" if($key =~ m/atrac3/);
|
||
|
print "| *True Audio* |||||\n" if($key =~ m/true/);
|
||
|
print "| *MP2* |||||\n" if($key =~ m/toolame/);
|
||
|
#potiential future rockbox codecs
|
||
|
print "| *atrac* |||||\n" if($key =~ m/atrac1/);
|
||
|
print "| *WMA Professional* |||||\n" if($key =~ m/wmapro/);
|
||
|
print "| *WMA Lossless* |||||\n" if($key =~ m/wmal/);
|
||
|
|
||
|
}
|
||
|
|
||
|
if(defined($oldfile{$key})){
|
||
|
$str=sprintf("%1.2f",($oldfile{$key}->[1]-$newfile{$key}->[1])/$oldfile{$key}->[1]*100+100 );
|
||
|
print "| $key | $newfile{$key}->[0]"."% realtime | Decode time - $newfile{$key}->[2]s | ".sprintf("%2.2f",$newfile{$key}->[1])."MHz | ".$str."%|\n";
|
||
|
}elsif(scalar(@ARGV) ==2){
|
||
|
print "| $key | $newfile{$key}->[0]"."% realtime | Decode time - $newfile{$key}->[2]s | $newfile{$key}->[1]"."MHz | - |\n";
|
||
|
} else{
|
||
|
|
||
|
print "| $key | ". $newfile{$key}->[0]."% realtime | Decode time - $newfile{$key}->[2]s | ".sprintf("%2.2f",$newfile{$key}->[1])."MHz |\n";
|
||
|
}
|
||
|
$oldkey=$key;
|
||
|
}
|