diff options
Diffstat (limited to 'tests/lavfi-regression.sh')
-rwxr-xr-x | tests/lavfi-regression.sh | 37 |
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" |