#!/bin/sh set -e source vsp-lib.sh mediactl='media-ctl' yavta='yavta' # ------------------------------------------------------------------------------ # Format retrieval # frame_reference() { format=$1 size=$2 lcfmt=`echo $infmt | tr '[:upper:]' '[:lower:]'` case $format in ARGB555) echo "frames/frame-reference-$lcfmt-$size-alpha255.bin" ;; ABGR32 | ARGB32) echo "frames/frame-reference-$lcfmt-$size-alpha200.bin" ;; XRGB555 | XBGR32 | XRGB32) echo "frames/frame-reference-$lcfmt-$size-alpha0.bin" ;; *) echo "frames/frame-reference-$lcfmt-$size.bin" ;; esac } # ------------------------------------------------------------------------------ # Parse the command line and retrieve the formats # syntax() { echo "Syntax: vsp-runner.sh dev cmd [...]" echo "" echo "Supported commands:" echo " hgo [options]" echo " input index infmt [options]" echo " output index outfmt [options]" } parse() { if [ $# -lt 2 ] ; then syntax return 1 fi mdev=$1 dev=`$mediactl -d $mdev -p | grep 'bus info' | sed 's/.*platform://'` if [ -z $dev ] ; then echo "Error: Device $dev doesn't exist" syntax return 1 fi cmd=$2 case $cmd in hgo) options=$3 ;; input) index=$3 infmt=$4 options=$5 ;; output) index=$3 outfmt=$4 options=$5 ;; *) echo "Invalid command $cmd" ;; esac } # ------------------------------------------------------------------------------ # Execute the command # execute() { case $cmd in hgo) if [ "x$options" = xinfinite ] ; then $yavta -c -n 4 \ `$mediactl -d $mdev -e "$dev hgo histo"` else $yavta -c10 -n 10 --file=histo-#.bin $options \ `$mediactl -d $mdev -e "$dev hgo histo"` fi ;; input) rpf=rpf.$index size=$(vsp1_entity_get_size $rpf 0) file=$(frame_reference $infmt $size) if [ "x$options" = xinfinite ] ; then $yavta -c -n 4 -f $infmt -s $size --file=$file $options \ `$mediactl -d $mdev -e "$dev $rpf input"` else $yavta -c10 -n 4 -f $infmt -s $size --file=$file $options \ `$mediactl -d $mdev -e "$dev $rpf input"` fi ;; output) wpf=wpf.$index size=$(vsp1_entity_get_size $wpf 1) if [ "x$options" = xinfinite ] ; then $yavta -c -n 4 -f $outfmt -s $size \ `$mediactl -d $mdev -e "$dev $wpf output"` else $yavta -c10 -n 4 -f $outfmt -s $size --skip 7 -F $options \ `$mediactl -d $mdev -e "$dev $wpf output"` fi ;; esac } parse $* && execute