#!/bin/sh
help(){
	echo "Usage: $0 <filename.[mov|avi]>"
	exit 0
}
monitor(){
	echo monitoring lavrec...
	nerr=0
	old=`head -1 /proc/stat`
	while sleep 1
	do
	new=`head -1 /proc/stat`
	isrun=`{
	    echo $old
	    echo $new
	} | awk '
	BEGIN { cpu=0 } 
	{
	    if(cpu==0) {
	        cpu=$2
	    } else {
	        if($2-cpu<50) print "1"
            else print "0"
	    }
	}'`
	case $isrun in
0)  let nerr=0 ;;
1)  let nerr=nerr+1 ;;
	esac
	case $nerr in
1)  echo lavrec timeout detected...
	return ;;
	esac
	old=$new
	done
}
if test "$#" = "1"
then
	case $1 in
*.mov)
		base=`echo $1 | sed "s/.mov$//"`
        flag="-fq"
		extn="mov" ;;
*.qt)
		base=`echo $1 | sed "s/.qt$//"`
        flag="-fq"
		extn="qt" ;;
*.avi)
		base=`echo $1 | sed "s/.avi$//"`
		flag="-fa"
        extn="avi" ;;
*)
		help ;;
	esac

	for i in 0 1 2 3 4 5 6 7 8 9
	do
		for j in 0 1 2 3 4 5 6 7 8 9
		do
			echo Capturing $base$i$j-XX.$extn...
	lavrec -B --software-encoding -n64 --num-procs 3 $flag -iN -q75 \
	-g480x480 -s --max-file-size 128 $base$i$j-%02d.$extn &
        lavrec_pid=$!
		trap "kill -1 $lavrec_pid; exit" 1
		trap "kill -2 $lavrec_pid; exit" 2
		trap "kill -3 $lavrec_pid; exit" 3
		trap "kill -15 $lavrec_pid; exit" 15
		sleep 1
		monitor
		if test -d /proc/$lavrec_pid
		then
			echo ...kill -2 $lavrec_pid
			kill -2 $lavrec_pid
			sleep 1
			if test -d /proc/$lavrec_pid
			then
				sleep 1
				if test -d /proc/$lavrec_pid
				then
					echo ...killall -9 lavrec
					killall -9 lavrec
				fi
			fi
		fi
		done
	done
else
	help
fi
