#!/bin/sh
# pre version by big cake 2006/04/22
# dependencies: xawtv, mjpeg, .. oehm.
echo "record (v0.1)"
echo "	lgpl'd (c) 2006 sk"
echo
echo "Will record analog video input and convert it to some SVCD data"
echo " (MPEG2 multiplex and cuesheet)."
echo
if [ $# -ge 2 ]; then
	TITLE=$1
	TIME=$2
else
	echo "Syntax: $0 <title> <duration> [<split size>]"
	echo
	echo "- <title> is the title of your movie"
	echo "- Format for record <duration> is [hh:]mm:ss"
	echo "- split size is an optional value to divide video files"
	echo "  into peaces; default is 700MiB for a default CD."
	exit 1
fi
if [ $# -eq 3 ]; then
	SIZE=$3
else
	SIZE=700
fi

mkdir "$TITLE" > /dev/null 2>&1
cd "$TITLE"
echo -n "	~~~ Capturing ${TIME}, splitted into $SIZE MiB files.. "
streamer -o cap.yuv -s 480x576 -i Composite1 -f 4mpeg -r 25 -n pal -O cap.wav -F stereo -t $TIME > /dev/null 2>&1
echo 'done.'
echo -n "	~~~ Converting WAV to MPEG2 audio.. "
lame -b 224 cap.wav cap.mp2 > /dev/null 2>&1
echo 'done.'
echo -n "	~~~ Converting RAW YUV video data to MPEG2 video.. "
(cat cap.yuv | yuvscaler -O SVCD | mpeg2enc  -f 4  -q 12 -I 0 -g 6 -G 18 -V 230 -S $SIZE -B 224 -N -s -o cap.m2v) > /dev/null 2>&1
echo 'done.'
echo -n "	~~~ Mixing audio and video data.. "
mplex -v 1 -f 4 -b 230 -S $SIZE -V  -o video%d.mpg cap.m2v cap.mp2 > /dev/null 2>&1
echo 'done.'
echo -n "	~~~ Adding SVCD header.. "
i=0
for f in video*.mpg; do
	vcdimager -t svcd "$f" > /dev/null 2>&1
	let i=$i+1
	echo -n "$i "
done
echo
(rm cap.yuv cap.wav cap.m2v cap.mp2) > /dev/null 2>&1
echo "	~~~ Removed temporary files (cap.{yuv,wav,m2v,mp2})."
echo "	~~~ Now have fun with:"
echo "	$TITLE/"
for f in video*.mpg; do
	echo "		$f"
done
printf "\t\tvideocd.bin\n\t\tvideocd.cue\n"
printf "	(burn SVCD with 'cdrdao')\n"


