diff options
-rwxr-xr-x | scripts/vsp-lib.sh | 25 | ||||
-rwxr-xr-x | tests/vsp-unit-test-0015.sh | 44 |
2 files changed, 69 insertions, 0 deletions
diff --git a/scripts/vsp-lib.sh b/scripts/vsp-lib.sh index 7c012d0..3261ad7 100755 --- a/scripts/vsp-lib.sh +++ b/scripts/vsp-lib.sh @@ -397,6 +397,14 @@ pipe_rpf_uds_bru() { __vsp_wpf_index=0 } +pipe_rpf_sru() { + $mediactl -d $mdev -l "'$dev rpf.0':1 -> '$dev sru':0 [1]" + $mediactl -d $mdev -l "'$dev sru':1 -> '$dev wpf.0':0 [1]" + $mediactl -d $mdev -l "'$dev wpf.0':1 -> '$dev wpf.0 output':0 [1]" + + __vsp_wpf_index=0 +} + pipe_rpf_wpf() { local rpf=$1 local wpf=$2 @@ -590,6 +598,23 @@ format_rpf_uds_bru() { __vsp_wpf_format=$3 } +format_rpf_sru() { + local infmt=$(format_v4l2_to_mbus $1) + local insize=$2 + local outfmt=$(format_v4l2_to_mbus $3) + local outsize=$4 + + $mediactl -d $mdev -V "'$dev rpf.0':0 [fmt:$infmt/$insize]" + $mediactl -d $mdev -V "'$dev sru':0 [fmt:$infmt/$insize]" + $mediactl -d $mdev -V "'$dev sru':1 [fmt:$infmt/$outsize]" + $mediactl -d $mdev -V "'$dev wpf.0':0 [fmt:$infmt/$outsize]" + $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 +} + format_rpf_wpf() { local rpf=$1 local wpf=$2 diff --git a/tests/vsp-unit-test-0015.sh b/tests/vsp-unit-test-0015.sh new file mode 100755 index 0000000..3818537 --- /dev/null +++ b/tests/vsp-unit-test-0015.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +# +# Test SRU upscaling in RGB and YUV modes. +# +# SRU processing of RGB data may generate adverse effects such as color blue. +# YUV processing is thus recommended, RGB processing must be evaluated +# carefully before putting it into practical use. +# + +source vsp-lib.sh + +features="rpf.0 sru wpf.0" +formats="RGB24 YUV444M" + +test_sru() { + local format=$1 + local insize=$2 + local outsize=$3 + + test_start "SRU scaling from $insize to $outsize in $format" + + pipe_configure rpf-sru + format_configure rpf-sru $format $insize $format $outsize + + vsp_runner rpf.0 & + vsp_runner wpf.0 + + local result=$(compare_frames) + + test_complete $result +} + +test_main() { + local format + + for format in $formats ; do + test_sru $format 1024x768 1024x768 # without scaling + test_sru $format 1024x768 2048x1536 # SRUx2 + done +} + +test_init $0 "$features" +test_run |