summaryrefslogtreecommitdiff
path: root/scripts/vsp-runner.sh
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2016-05-16 21:55:52 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2016-05-19 16:55:07 +0300
commit62f0b16f639a9ecb116a79819655bdf44e269443 (patch)
treef66dc07c616b3f387f3ec941537e840fce261322 /scripts/vsp-runner.sh
Initial commit
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'scripts/vsp-runner.sh')
-rwxr-xr-xscripts/vsp-runner.sh135
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