[Mplayer-cvslog] CVS: main/TOOLS calcbpp.pl,1.1,1.2

Moritz Bunkus CVS mosu at mplayerhq.hu
Mon Dec 16 11:43:22 CET 2002


Update of /cvsroot/mplayer/main/TOOLS
In directory mail:/var/tmp.root/cvs-serv2901

Modified Files:
	calcbpp.pl 
Log Message:
bunkus: Restored sane line breaks. Added note about other DVD resolutions than 720x576.

Index: calcbpp.pl
===================================================================
RCS file: /cvsroot/mplayer/main/TOOLS/calcbpp.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- calcbpp.pl	15 Dec 2002 18:44:24 -0000	1.1
+++ calcbpp.pl	16 Dec 2002 10:43:07 -0000	1.2
@@ -10,12 +10,36 @@
     floor($v);
 }
 
+$raw_aspect = 720/576;
+
 if (scalar(@ARGV) < 4) {
   print("Please provide a) the cropped but unscaled resolution (e.g. " .
         "716x524), b) the aspect ratio (either 4/3 or 16/9 for most DVDs), " .
         "c) the video bitrate in kbps (e.g. 800) and d) the movie's fps.\n");
+  print("If your DVD is not encoded at 720x576 then change the \$raw_aspect" .
+        "variable at the beginning of this script.\n");
   exit(1);
 }
 
-($unscaled_width, $unscaled_height) = split('x', $ARGV[0]);.$encoded_at = $ARGV[1];.if ($encoded_at =~ /\//) {.  my @a = split(/\//, $encoded_at);.  $encoded_at = $a[0] / $a[1];.}.$scaled_width = $unscaled_width * ($encoded_at / (5/4));.$scaled_height = $unscaled_height;.$picture_ar = $scaled_width / $scaled_height;.($bps, $fps) = @ARGV[2, 3];..printf("Prescaled picture: %dx%d, AR %.2f\n", $scaled_width, $scaled_height,.       $picture_ar);.for ($width = 720; $width >= 320; $width -= 16) {.  $height = 16 * round($width / $picture_ar / 16);.  $diff = round($width / $picture_ar - $height);.  $new_ar = $width / $height;.  $picture_ar_error = abs(100 - $picture_ar / $new_ar * 100);.  printf("${width}x${height}, diff % 3d, new AR %.2f, AR error %.2f%% " ..         "scale=%d:%d bpp: %.3f\n", $diff, $new_ar, $picture_ar_error, $width,.         $height, ($bps * 1000) / ($width * $height * $fps));.}.
+($unscaled_width, $unscaled_height) = split('x', $ARGV[0]);
+$encoded_at = $ARGV[1];
+if ($encoded_at =~ /\//) {
+  my @a = split(/\//, $encoded_at);
+  $encoded_at = $a[0] / $a[1];
+}
+$scaled_width = $unscaled_width * ($encoded_at / ($raw_aspect));
+$scaled_height = $unscaled_height;
+$picture_ar = $scaled_width / $scaled_height;
+($bps, $fps) = @ARGV[2, 3];
 
+printf("Prescaled picture: %dx%d, AR %.2f\n", $scaled_width, $scaled_height,
+       $picture_ar);
+for ($width = 720; $width >= 320; $width -= 16) {
+  $height = 16 * round($width / $picture_ar / 16);
+  $diff = round($width / $picture_ar - $height);
+  $new_ar = $width / $height;
+  $picture_ar_error = abs(100 - $picture_ar / $new_ar * 100);
+  printf("${width}x${height}, diff % 3d, new AR %.2f, AR error %.2f%% " .
+         "scale=%d:%d bpp: %.3f\n", $diff, $new_ar, $picture_ar_error, $width,
+         $height, ($bps * 1000) / ($width * $height * $fps));
+}




More information about the MPlayer-cvslog mailing list