diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2016-05-16 21:55:52 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2016-05-19 16:55:07 +0300 |
commit | 62f0b16f639a9ecb116a79819655bdf44e269443 (patch) | |
tree | f66dc07c616b3f387f3ec941537e840fce261322 /scripts/vsp-runner.sh |
Initial commit
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'scripts/vsp-runner.sh')
-rwxr-xr-x | scripts/vsp-runner.sh | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/scripts/vsp-runner.sh b/scripts/vsp-runner.sh new file mode 100755 index 0000000..e92eda1 --- /dev/null +++ b/scripts/vsp-runner.sh @@ -0,0 +1,135 @@ +#!/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 |