#!/bin/bash

SCALE="320:240"
BITRATE=384
EXTENSION="avi"

if [ $# -lt 2 ]
then
  echo "Resample video file to fit into zaurus"
  echo "Usage    : `basename $0` -i input.avi -o output.avi [-r] [-b bitrate] [-s x:y]"
  echo 
  echo "Alternate: `basename $0` -d directory [-b bitrate] [-r] [-s x:y] [-x ext]"
  echo 
  exit 1
fi

while getopts ":i:o:b:s:d:x:" Option
do
  case $Option in
    i ) INPUT=$OPTARG;;
    o ) OUTPUT=$OPTARG;;
    b ) BITRATE=$OPTARG;;
    s ) SCALE=$OPTARG;;
    d ) DIRECTORY=$OPTARG;;
    x ) EXTENSION=$OPTARG;;
    r ) RECOPY=1;
  esac
done

shift $(($OPTIND - 1))

if [ -n "$DIRECTORY" ]
then
  cd "$DIRECTORY"
  for FILE in *.$EXTENSION
  do
    if [ "$FILE" == "*.$EXTENSION" ]
    then
      echo "Error: There is no $EXTENSION files in the '$DIRECTORY'"
      echo
      exit 1
    fi
    OUTFILE=`echo ${FILE} | sed "s/${EXTENSION}$/avi/" | sed "s/^/f_/"`
    mencoder -oac mp3lame -lameopts mode=3:preset=24 -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate="$BITRATE":keyint=250 -vop expand="320:240",scale="$SCALE" -o "$OUTFILE" "$FILE"
    if [ "$RECOPY" == "1" ]
    then
      mencode -oac copy -ovc copy -o "$OUTFILE.tmp" "$OUTFILE"
      mv "$OUTFILE.tmp" "$OUTFILE"
    fi
  done
  exit 0
fi

if [ "X$INPUT" == "X" ]
then
  echo "You must specify an input avi file."
  exit 1
fi

if [ "X$OUTPUT" == "X" ]
then
  echo "You must specify an output avi file."
  exit 1
fi

if [ "X$BITRATE" == "X" ]
then
  echo "You must specify a target bitrate."
  exit 1
fi

mencoder -oac mp3lame -lameopts mode=3:preset=24 -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate="$BITRATE":keyint=250 -vop expand="320:240",scale="$SCALE" -o "$OUTPUT" "$INPUT"
