summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/vsp-lib.sh25
-rwxr-xr-xtests/vsp-unit-test-0015.sh44
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