#!/bin/bash

ADDOPT=""

. "${BASH_SOURCE%/*}/funcs.sh" "$1"

check_audio() {
    if [ "$2" != "${FILEEXT}" ]
    then
        TGTFILE="$1.$2.${FILEEXT}"
    else
        TGTFILE="$1.${FILEEXT}"
    fi
    SRCFILE="$1.$2"
    EXPECTED="$3"

    printf "> TRANSCODING %s\n" ${DIRNAME}/${TGTFILE##*/}
    cp -vpf "${DIRNAME}/${TGTFILE}" "${TMPPATH}" > /dev/null
    #cp -vpf "${DIRNAME}/${TGTFILE}" "${TMPPATH}" > /dev/null

    CMPRESULT="$(./fpcompare "${SRCDIR}/${SRCFILE}" "${DIRNAME}/${TGTFILE}")"

    if [ $(echo "${CMPRESULT} <= ${EXPECTED}" | bc) -eq 1 ]
    then
        RESULT="Pass"
		RETURN=0
    else
        RESULT="FAIL"
        RETURN=1
    fi

	printf "> %s -> File: %-20s %f (expected %f)\n" ${RESULT} ${TGTFILE} ${CMPRESULT} ${EXPECTED}

    if [ ${RETURN} != 0 ];
    then
            exit ${RETURN}
    fi
}

if [ "${DESTTYPE}" == "mp4" ];
then
	# mp4
        check_audio "raven_e" "flac" 0.04
        check_audio "raven_d" "ogg" 0.05
elif [ "${DESTTYPE}" == "mp3" ];
then
	# mp3
        check_audio "raven_e" "flac" 0.04
        check_audio "raven_d" "ogg" 0.08
elif [ "${DESTTYPE}" == "wav" ];
then
	# wav
	check_audio "raven_e" "flac" 0.0
	check_audio "raven_d" "ogg" 0.0
elif [ "${DESTTYPE}" == "ogg" ];
then
	# ogg
	check_audio "raven_e" "flac" 0.2
	check_audio "raven_d" "ogg" 0.0
elif [ "${DESTTYPE}" == "webm" ];
then
	# webm
	check_audio "raven_e" "flac" 0.03
	check_audio "raven_d" "ogg" 0.03
elif [ "${DESTTYPE}" == "opus" ];
then
	# opus
	check_audio "raven_e" "flac" 0.4
	check_audio "raven_d" "ogg" 0.03
elif [ "${DESTTYPE}" == "mov" ];
then
	# mov
	check_audio "raven_e" "flac" 0.04
	check_audio "raven_d" "ogg" 0.05
elif [ "${DESTTYPE}" == "aiff" ];
then
	# aiff
	check_audio "raven_e" "flac" 0.0
	check_audio "raven_d" "ogg" 0.0
elif [ "${DESTTYPE}" == "prores" ];
then
	# prores
	check_audio "raven_e" "flac" 0.0
	check_audio "raven_d" "ogg" 0.0
elif [ "${DESTTYPE}" == "alac" ];
then
	# alac
	check_audio "raven_e" "flac" 0.0
	check_audio "raven_d" "ogg" 0.0
elif [ "${DESTTYPE}" == "ts" ];
then
	# ts
	check_audio "raven_e" "flac" 0.039136
	check_audio "raven_d" "ogg" 0.050
elif [ "${DESTTYPE}" == "flac" ];
then
	# flac
	check_audio "raven_e" "flac" 0.0
	check_audio "raven_d" "ogg" 0.0
else
        echo "Internal error, unknown type ${DESTTYPE}. Fix script!"
	exit 99
fi

echo "OK"
