#!/bin/bash

## Este script automatiza as tarefas de confecção de um DVD

## Verifica se o video foi passado
if [ -z "$1" ]; then
	echo "Usar: -> $0 video"
	exit
fi

case "`tty`" in
  /dev/tty[1-8])
    MODE=text
    DIALOG=dialog
    ;;
  /dev/pts/*|/dev/ttyp*)
    MODE=x
    export XDIALOG_HIGH_DIALOG_COMPAT=1
    [ -x /usr/bin/gdialog ] && DIALOG=gdialog
    [ -x /usr/bin/Xdialog ] && DIALOG=Xdialog
    [ $DIALOG = dialog ] && MODE=text
    ;;
  *)
    MODE=text
    DIALOG=dialog
    ;;
esac
if [ -z "$DISPLAY" ] ; then
  MODE=text
  DIALOG=dialog
fi

DIRETORIO_TRABALHO="/home/kurumin/dvd"

BT="Montando o DVD"

function dolby() {
	pinners="| / - .\\"
	sox -V $DIRETORIO_TRABALHO/$1.wav -r 48000 -c1 $DIRETORIO_TRABALHO/left.wav avg -l
	sox -V $DIRETORIO_TRABALHO/$1.wav -r 48000 -c1 $DIRETORIO_TRABALHO/right.wav avg -r

	T1=$BT
	M1="Criando o canal surround esquerdo"
	#$DIALOG --backtitle "$BT" --title "$T1" --msgbox "$M1" 10 50

	cp -rf $DIRETORIO_TRABALHO/left.wav $DIRETORIO_TRABALHO/left_surround.wav

	T1=$BT
	M1="Criando o canal surround direito"
	#$DIALOG --backtitle "$BT" --title "$T1" --msgbox "$M1" 10 50

	cp -rf $DIRETORIO_TRABALHO/right.wav $DIRETORIO_TRABALHO/right_surround.wav

	soxmix -V $DIRETORIO_TRABALHO/left.wav $DIRETORIO_TRABALHO/right.wav -r 48000 -c1 $DIRETORIO_TRABALHO/centre.wav
	sox -V -v 0.5 $DIRETORIO_TRABALHO/centre.wav $DIRETORIO_TRABALHO/lfe.wav lowp 150

	rm -rf $DIRETORIO_TRABALHO/sound.wav

	multimux -d 0,0,0,15,15,0 $DIRETORIO_TRABALHO/left.wav $DIRETORIO_TRABALHO/centre.wav $DIRETORIO_TRABALHO/right.wav $DIRETORIO_TRABALHO/left_surround.wav $DIRETORIO_TRABALHO/right_surround.wav $DIRETORIO_TRABALHO/lfe.wav -o $DIRETORIO_TRABALHO/final.wav
	
	rm $DIRETORIO_TRABALHO/$1.wav $DIRETORIO_TRABALHO/left.wav $DIRETORIO_TRABALHO/centre.wav $DIRETORIO_TRABALHO/right.wav $DIRETORIO_TRABALHO/left_surround.wav $DIRETORIO_TRABALHO/right_surround.wav $DIRETORIO_TRABALHO/lfe.wav

	ffmpeg -i $DIRETORIO_TRABALHO/final.wav -ab 384 -ar 48000 -ac 6 $DIRETORIO_TRABALHO/$1.ac3

	#PID=`ps aux | grep "rm $DIRETORIO_TRABALHO/left.wav $DIRETORIO_TRABALHO/centre.wav $DIRETORIO_TRABALHO/right.wav" | grep -v grep | awk '{print $2}'`
}


if [ ! -d "$DIRETORIO_TRABALHO" ]; then

	T1=$BT
	M1="Criando nosso diretório de trabalho"
	#$DIALOG --backtitle "$BT" --title "$T1" --msgbox "$M1" 10 50
	mkdir $DIRETORIO_TRABALHO
fi

if [ ! -f "$DIRETORIO_TRABALHO/sound.ac3" ]; then

	T1=$BT
	M1="Extrai o áudio do video"
	#$DIALOG --backtitle "$BT" --title "$T1" --msgbox "$M1" 10 50

	mplayer "$1" -ao pcm:file=$DIRETORIO_TRABALHO/sound.wav
fi

if [ ! -f "$DIRETORIO_TRABALHO/sound.ac3" ]; then

	T1=$BT
	M1="Criando o som 5.1"
	#$DIALOG --backtitle "$BT" --title "$T1" --msgbox "$M1" 10 50

	dolby "sound"
fi

if [ ! -f "$DIRETORIO_TRABALHO/foo.avi" ]; then

	T1=$BT
	M1="Convertendo o video"
	#$DIALOG --backtitle "$BT" --title "$T1" --msgbox "$M1" 10 50
	
	#mencoder "$1" -of mpeg -vf scale=720:480,harddup -oac lavc -ovc lavc -lavcopts acodec=ac3:abitrate=192:vcodec=mpeg2video:keyint=25:vbitrate=5000:aspect=16/9 -mpegopts format=dvd -srate 48000 -ofps 30000/1001 -o $DIRETORIO_TRABALHO/movie.mpg

	mencoder -fps 20 -ofps 24 -nosound -ovc copy "$1" -o $DIRETORIO_TRABALHO/foo.avi
fi

T1=$BT
M1="Indo para o diretório de trabalho"
#$DIALOG --backtitle "$BT" --title "$T1" --msgbox "$M1" 10 50
cd $DIRETORIO_TRABALHO

if [ ! -f "$DIRETORIO_TRABALHO/foo.m1v" ]; then

	T1=$BT
	M1="Separando o vídeo do áudio"
	#$DIALOG --backtitle "$BT" --title "$T1" --msgbox "$M1" 10 50

	# transcode -i movie.mpg -V -y mpeg --export_prof dvd-ntsc --export_asr 3 -o movie -D0 -s2 -nosound -J modfps=clonetype=3 --export_fps 29.97

	#lav2yuv +p foo.avi | yuvdenoise | yuvmedianfilter | mpeg2enc -B 35 -f 0 -q 5 -b 320 -a 1 -o foo.m1v
fi

if [ ! -f "$DIRETORIO_TRABALHO/movie_dvd.mpg" ]; then

	T1=$BT
	M1="Montando o vídeo final"
	#$DIALOG --backtitle "$BT" --title "$T1" --msgbox "$M1" 10 50

	mplex -f 8 -o "$i.mpg" "movie-0.m2v" "sound.ac3"
fi
