summaryrefslogtreecommitdiff
path: root/tests/lavfi-regression.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lavfi-regression.sh')
-rwxr-xr-xtests/lavfi-regression.sh37
1 files changed, 36 insertions, 1 deletions
diff --git a/tests/lavfi-regression.sh b/tests/lavfi-regression.sh
index 4ac35bf394..3ab118207c 100755
--- a/tests/lavfi-regression.sh
+++ b/tests/lavfi-regression.sh
@@ -14,6 +14,18 @@ eval do_$test=y
rm -f "$logfile"
rm -f "$benchfile"
+get_common_elements() (
+ l1=$1
+ l2=$2
+ for elt1 in $1; do
+ for elt2 in $2; do
+ [ $elt1 = $elt2 ] && res="$res $elt1 "
+ done
+ done
+
+ echo $res
+)
+
do_lavfi() {
test_name=$1
eval test=\$do_$test_name
@@ -35,9 +47,32 @@ do_lavfi "vflip" "vflip"
do_lavfi "vflip_crop" "vflip,crop=100:100"
do_lavfi "vflip_vflip" "vflip,vflip"
+# all these filters have exactly one input and exactly one output
+filters_args="
+crop=100:100:100:100
+null
+pad=500:400:20:20
+scale=200:100
+vflip
+"
+
+if [ -n "$do_lavfi_pix_fmts" ]; then
+ scale_out_pix_fmts=$(tools/lavfi-showfiltfmts scale | grep "^OUTPUT" | cut -d: -f2)
+
+ for filter_args in $filters_args; do
+ filter=$(echo $filter_args | sed -e 's/\([^=]\+\)=.*/\1/')
+ in_pix_fmts=$(tools/lavfi-showfiltfmts $filter | grep "^INPUT" | cut -d: -f2)
+ pix_fmts=$(get_common_elements "$in_pix_fmts" "$scale_out_pix_fmts")
+
+ for pix_fmt in $pix_fmts; do
+ do_video_encoding "${pix_fmt}-${filter}.nut" "" \
+ "-vf slicify=random,format=$pix_fmt,$filter_args -vcodec rawvideo -pix_fmt $pix_fmt"
+ done
+ done
+fi
+
# TODO: add tests for
# direct rendering,
-# slices
# chains with feedback loops
rm -f "$bench" "$bench2"