blob: 98dd415b1b80adff297bbbe8aee0d0e7f855583a [file] [log] [blame]
#!/bin/sh
#
# Run one test out of one configuration directory.
#
# Arguments: configdir videofile
#
force=0
case $1 in
-f)
force=1
shift
;;
-*)
echo "No such option: $1"
exit 1
;;
default)
# do nothing
;;
esac
dir=$1
sourcefile=$2
if [ ! -f "$sourcefile" ]; then
echo "No sourcefile"
exit 1
fi
if [ ! -d $dir ]; then
echo "No config directory"
exit 1
fi
pathless=$(basename ${sourcefile})
clip_stem=${pathless%.*}
case $clip_stem in
# filename format: <path>/<clip_name>_<width>_<height>_<frame_rate>.yuv
# There can be _noise after the frame_rate.
*_*x*_*)
part=($(echo $clip_stem | tr "_" "\n"))
wh=($(echo ${part[1]} | tr "x" "\n"))
width=${wh[0]}
height=${wh[1]}
frame_rate=${part[2]}
;;
# filename format: <path>/<clip_name>_<width>_<height>_<frame_rate>.yuv
*_*_*_*)
part=($(echo $clip_stem | tr "_" "\n"))
width=${part[1]}
height=${part[2]}
frame_rate=${part[3]}
;;
default)
echo "Cannot decipher file pattern $pathless"
exit 1
;;
esac
echo "Settings $dir"
encoded=0
results=0
for result in $(ls $dir/$clip_stem.* 2>/dev/null); do
case $result in
*.results)
results=1
;;
*.webm)
encoded=1
;;
*.mkv)
encoded=1
;;
*)
echo "What is $result doing here?"
exit 1
esac
done
if [ $encoded == 0 -o $force == 1 ]; then
(cd $dir; ./encoder ../../$sourcefile $frame_rate $width $height)
else
echo "Already encoded $clip_stem"
fi
if [ $results == 0 -o $force == 1 ]; then
(cd $dir; ./measurer ../../$sourcefile $frame_rate $width $height)
# Necessary to save space while not modifying the measurer script.
rm $dir/tempyuvfile.yuv
else
echo "Known results for $clip_stem"
fi