view TOOLS/menc2pass @ 17566:f580a7755ac5

Patch by Stefan Huehner / stefan % huehner ! org \ patch replaces '()' for the correct '(void)' in function declarations/prototypes which have no parameters. The '()' syntax tell thats there is a variable list of arguments, so that the compiler cannot check this. The extra CFLAG '-Wstrict-declarations' shows those cases. Comments about a similar patch applied to ffmpeg: That in C++ these mean the same, but in ANSI C the semantics are different; function() is an (obsolete) K&R C style forward declaration, it basically means that the function can have any number and any types of parameters, effectively completely preventing the compiler from doing any sort of type checking. -- Erik Slagter Defining functions with unspecified arguments is allowed but bad. With arguments unspecified the compiler can't report an error/warning if the function is called with incorrect arguments. -- M\ns Rullg\rd
author rathann
date Thu, 09 Feb 2006 14:08:03 +0000
parents 9733351ea3e5
children
line wrap: on
line source

#!/usr/bin/perl -w
# Helper script to ease MEncoder two pass encoding
# Copyleft 2001 by Felix Buenemann <atmosfear@users.sourceforge.net>
# This file comes under GPL, see http://www.gnu.org/copyleft/gpl.html for more
# information on it's licensing.
use strict;
my $mencoder="mencoder"; # Path to MEncoder (including binary name)

die <<"EOF" unless @ARGV;
Menc2Pass: No arguments given!
Please give all usual encoding parameters you would give to mencoder, but leave
away the pass=<n> suboption.
EOF

for(my $i=1; $i<=2; $i++) {
  my $parm="";
  foreach my $val (@ARGV) {
    if($val =~ /-lavcopts/) {
      $parm.="$val vpass=$i:";
    } elsif($val =~ /-(divx4)|(xvid)opts/) {
      $parm.="$val pass=$i:";
    } else {
      $parm.="$val ";
    }
  }
  print "Running $mencoder $parm\n";
  system($mencoder,$parm)
  	and die "MEncoder pass $i failed!\n"
}