From 306c53b308c2ff7b6344b413332bf7ea040e852a Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sat, 18 Jun 2016 02:23:36 +0300 Subject: vsp-lib: Replace vsp-runner script with a function from vsp-lib This allows reusing variables internal to vsp-lib and getting rid of the mdev and format arguments to the vsp-runner invocations. As part of the transition, handle additional options with an explicit list of supported options instead of passing them straight to yavta. Signed-off-by: Laurent Pinchart --- scripts/vsp-lib.sh | 107 ++++++++++++++++++++++++++++++++++++ scripts/vsp-runner.sh | 149 -------------------------------------------------- 2 files changed, 107 insertions(+), 149 deletions(-) delete mode 100755 scripts/vsp-runner.sh (limited to 'scripts') diff --git a/scripts/vsp-lib.sh b/scripts/vsp-lib.sh index 1f00481..bf80aa0 100755 --- a/scripts/vsp-lib.sh +++ b/scripts/vsp-lib.sh @@ -388,6 +388,7 @@ pipe_reset() { $mediactl -d $mdev -r __vsp_bru_inputs= + __vsp_rpf_format= __vsp_uds_scale= __vsp_wpf_index= __vsp_wpf_format= @@ -438,6 +439,8 @@ format_rpf() { local rpf=$3 $mediactl -d $mdev -V "'$dev rpf.$rpf':0 [fmt:$format/$size]" + + __vsp_rpf_format=$1 } format_rpf_bru() { @@ -458,6 +461,7 @@ format_rpf_bru() { $mediactl -d $mdev -V "'$dev wpf.0':0 [fmt:$format/$size]" $mediactl -d $mdev -V "'$dev wpf.0':1 [fmt:$format/$size]" + __vsp_rpf_format=$1 __vsp_wpf_format=$1 } @@ -478,6 +482,7 @@ format_rpf_bru_uds() { $mediactl -d $mdev -V "'$dev wpf.0':1 [fmt:$outfmt/$outsize]" [ $insize != $outsize ] && __vsp_uds_scale=true + __vsp_rpf_format=$1 __vsp_wpf_format=$3 } @@ -491,6 +496,7 @@ format_rpf_clu() { $mediactl -d $mdev -V "'$dev wpf.0':0 [fmt:$format/$size]" $mediactl -d $mdev -V "'$dev wpf.0':1 [fmt:$format/$size]" + __vsp_rpf_format=$1 __vsp_wpf_format=$1 } @@ -505,6 +511,7 @@ format_rpf_hgo() { $mediactl -d $mdev -V "'$dev wpf.0':1 [fmt:$format/$size]" $mediactl -d $mdev -V "'$dev hgo':0 [fmt:$format/$size $crop $compose]" + __vsp_rpf_format=$1 __vsp_wpf_format=$1 } @@ -518,6 +525,7 @@ format_rpf_lut() { $mediactl -d $mdev -V "'$dev wpf.0':0 [fmt:$format/$size]" $mediactl -d $mdev -V "'$dev wpf.0':1 [fmt:$format/$size]" + __vsp_rpf_format=$1 __vsp_wpf_format=$1 } @@ -534,6 +542,7 @@ format_rpf_uds() { $mediactl -d $mdev -V "'$dev wpf.0':1 [fmt:$outfmt/$outsize]" [ $insize != $outsize ] && __vsp_uds_scale=true + __vsp_rpf_format=$1 __vsp_wpf_format=$3 } @@ -554,6 +563,7 @@ format_rpf_uds_bru() { $mediactl -d $mdev -V "'$dev wpf.0':1 [fmt:$outfmt/$outsize]" [ $insize != $outsize ] && __vsp_uds_scale=true + __vsp_rpf_format=$1 __vsp_wpf_format=$3 } @@ -577,6 +587,7 @@ format_rpf_wpf() { $mediactl -d $mdev -V "'$dev wpf.$wpf':0 [fmt:$infmt/$size $crop]" $mediactl -d $mdev -V "'$dev wpf.$wpf':1 [fmt:$outfmt/$outsize]" + __vsp_rpf_format=$3 __vsp_wpf_format=$5 } @@ -598,6 +609,101 @@ format_configure() { format_$pipe $* } +# ------------------------------------------------------------------------------ +# Frame capture and output +# + +generate_input_frame() { + local file=$1 + local format=$2 + local size=$3 + + local alpha= + local options= + + case $format in + ARGB555) + alpha=255 + ;; + ABGR32 | ARGB32) + alpha=200 + ;; + XRGB555 | XBGR32 | XRGB32) + alpha=0 + ;; + *) + alpha=255 + ;; + esac + + $(format_v4l2_is_yuv $format) && options="$options -y" + + $genimage -f $format -s $size -a $alpha $options -o $file \ + frames/frame-reference-1024x768.pnm +} + +vsp_runner() { + local entity=$1 + shift + + local option + local buffers=4 + local count=10 + local skip=7 + + for option in $* ; do + case $option in + --buffers=*) + buffers=${option/--buffers=/} + ;; + + --count=*) + count=${option/--count=/} + ;; + + --skip=*) + skip=${option/--skip=/} + ;; + + *) + return 1 + ;; + esac + done + + local file + local videodev + local format + local size + + case $entity in + hgo) + videodev=$(vsp1_entity_subdev "hgo histo") + file="histo-#.bin" + buffers=10 + ;; + + rpf.*) + videodev=$(vsp1_entity_subdev "$entity input") + format=$__vsp_rpf_format + size=$(vsp1_entity_get_size $entity 0) + file=${entity}.bin + generate_input_frame $file $format $size + ;; + + wpf.*) + videodev=$(vsp1_entity_subdev "$entity output") + format=$__vsp_wpf_format + size=$(vsp1_entity_get_size $entity 1) + file="frame-#.bin" + ;; + esac + + $yavta -c$count -n $buffers ${format:+-f $format} ${size:+-s $size} \ + ${skip:+--skip $skip} ${file:+--file=$file} $videodev \ + | ./logger.sh $entity >> $logfile +} + # ------------------------------------------------------------------------------ # Test run # @@ -671,6 +777,7 @@ test_complete() { rm -f frame-*.bin rm -f histo-*.bin + rm -f rpf.*.bin } test_run() { diff --git a/scripts/vsp-runner.sh b/scripts/vsp-runner.sh deleted file mode 100755 index c4745c3..0000000 --- a/scripts/vsp-runner.sh +++ /dev/null @@ -1,149 +0,0 @@ -#!/bin/sh - -set -e - -source vsp-lib.sh - -genimage='./gen-image' -mediactl='media-ctl' -yavta='yavta' - -# ----------------------------------------------------------------------------- -# Input frame generation -# - -generate_input_frame() { - local file=$1 - local format=$2 - local size=$3 - - local alpha= - local options= - - case $format in - ARGB555) - alpha=255 - ;; - ABGR32 | ARGB32) - alpha=200 - ;; - XRGB555 | XBGR32 | XRGB32) - alpha=0 - ;; - *) - alpha=255 - ;; - esac - - $(format_v4l2_is_yuv $format) && options="$options -y" - - $genimage -f $format -s $size -a $alpha $options -o $file \ - frames/frame-reference-1024x768.pnm -} - -# ------------------------------------------------------------------------------ -# 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 - cmd=$2 - - case $cmd in - hgo) - options=$3 - log=hgo - ;; - - input) - index=$3 - infmt=$4 - options=$5 - log=input.$index - ;; - - output) - index=$3 - outfmt=$4 - options=$5 - log=output.$index - ;; - - *) - echo "Invalid command $cmd" - ;; - esac -} - -# ------------------------------------------------------------------------------ -# Execute the command -# - -execute() { - 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 - - case $cmd in - hgo) - if [ "x$options" = xinfinite ] ; then - $yavta -c -n 4 $(vsp1_entity_subdev "hgo histo") - else - $yavta -c10 -n 10 --file=histo-#.bin $options \ - $(vsp1_entity_subdev "hgo histo") - fi - ;; - - input) - rpf=rpf.$index - size=$(vsp1_entity_get_size $rpf 0) - file=${rpf}.bin - - generate_input_frame $file $infmt $size - - if [ "x$options" = xinfinite ] ; then - $yavta -c -n 4 -f $infmt -s $size --file=$file $options \ - $(vsp1_entity_subdev "$rpf input") - else - $yavta -c10 -n 4 -f $infmt -s $size --file=$file $options \ - $(vsp1_entity_subdev "$rpf input") - fi - - rm -f $file - ;; - - output) - wpf=wpf.$index - size=$(vsp1_entity_get_size $wpf 1) - - if [ "x$options" = xinfinite ] ; then - $yavta -c -n 4 -f $outfmt -s $size \ - $(vsp1_entity_subdev "$wpf output") - else - $yavta -c10 -n 4 -f $outfmt -s $size --skip 7 -F $options \ - $(vsp1_entity_subdev "$wpf output") - fi - ;; - esac -} - -parse $* || exit 1 -execute | ./logger.sh $log >> $logfile -- cgit v1.2.3