#!/usr/bin/bash
# Run aom benchmark
MIRROR_LOCATION="$WEBROOT/aom/"

###SHELLPACK preamble aom-bench v3.3.0
AOM_ENCODER_SPEED=5

###SHELLPACK parseargBegin
###SHELLPACK parseargInstall
###SHELLPACK parseargParam --min-threads	AOM_MIN_THREADS
###SHELLPACK parseargParam --max-threads	AOM_MAX_THREADS
###SHELLPACK parseargParam --source-file	AOM_SOURCE_FILE
###SHELLPACK parseargParam --encoder-speed	AOM_ENCODER_SPEED
###SHELLPACK parseargEnd
###SHELLPACK monitor_hooks

###SHELLPACK check_install_required aom-${VERSION}
file_fetch http://ultravideo.cs.tut.fi/video/$AOM_SOURCE_FILE	\
	$MIRROR_LOCATION/$AOM_SOURCE_FILE			\
	$SHELLPACK_DATA/$AOM_SOURCE_FILE
rm -f $SHELLPACK_DATA/*.y4m
rm -f $SHELLPACK_DATA/*.txt
7z e -o$SHELLPACK_DATA				\
	$SHELLPACK_DATA/$AOM_SOURCE_FILE	\
	|| die "Failed to extract $SHELLPACK_DATA/$AOM_SOURCE_FILE"
###SHELLPACK init_complete

if [ $AOM_ENCODER_SPEED -eq 0 ]; then
	echo "WARNING: AOM_ENCODER_SPEED=0: This is exceptionally slow"
else
	echo "AOM_ENCODER_SPEED=$AOM_ENCODER_SPEED"
fi

AOM_SOURCE_FILE=`ls $SHELLPACK_DATA/*.y4m`
AOM_SOURCE_FILE=`basename $AOM_SOURCE_FILE`
###SHELLPACK threads_large_stride_begin $AOM_MIN_THREADS $AOM_MAX_THREADS
	monitor_pre_hook $LOGDIR_RESULTS $NR_THREADS
	echo Starting threads $NR_THREADS/$AOM_MAX_THREADS
	$TIME_CMD -o $LOGDIR_RESULTS/time-$NR_THREADS				\
		$SHELLPACK_SOURCES/aom-${VERSION}-installed/bin/aomenc		\
			--threads=$NR_THREADS					\
			--cpu-used=$AOM_ENCODER_SPEED				\
			-o $SHELLPACK_DATA/output.avi				\
			$SHELLPACK_DATA/$AOM_SOURCE_FILE			\
			&> $LOGDIR_RESULTS/aom-$NR_THREADS.log
		rm -f $SHELLPACK_DATA/output.avi
	monitor_post_hook $LOGDIR_RESULTS $NR_THREADS
	sed -i -e 's/[^[:print:]\t]/\n/g' $LOGDIR_RESULTS/aom-$NR_THREADS.log
	gzip $LOGDIR_RESULTS/aom-$NR_THREADS.log
###SHELLPACK threads_stride_end

exit $SHELLPACK_SUCCESS
