Commit b963f021 authored by Diego Biurrun's avatar Diego Biurrun

fate: Invoke pixfmts lavfi tests through fate-run.sh

parent 28663511
......@@ -45,7 +45,6 @@ FILTERDEMDECENCMUX = $(call ALLYES, $(1)_FILTER $(2)_DEMUXER $(3)_DECODER $(4)_E
include $(SRC_PATH)/tests/fate/acodec.mak
include $(SRC_PATH)/tests/fate/vcodec.mak
include $(SRC_PATH)/tests/fate/avformat.mak
include $(SRC_PATH)/tests/fate/avfilter.mak
include $(SRC_PATH)/tests/fate/seek.mak
include $(SRC_PATH)/tests/fate/aac.mak
......
......@@ -156,11 +156,6 @@ lavftest(){
regtest lavf lavf tests/vsynth1
}
lavfitest(){
cleanfiles="tests/data/lavfi/${test#lavfi-}.nut"
regtest lavfi lavfi tests/vsynth1
}
video_filter(){
filters=$1
shift
......@@ -179,6 +174,27 @@ pixdesc(){
done
}
pixfmts(){
filter=${test#filter-pixfmts-}
filter_args=$1
showfiltfmts="$target_exec $target_path/libavfilter/filtfmts-test"
exclude_fmts=${outfile}${filter}_exclude_fmts
out_fmts=${outfile}${filter}_out_fmts
# exclude pixel formats which are not supported as input
avconv -pix_fmts list 2>/dev/null | awk 'NR > 8 && /^\..\./ { print $2 }' | sort >$exclude_fmts
$showfiltfmts scale | awk -F '[ \r]' '/^OUTPUT/{ print $3 }' | sort | comm -23 - $exclude_fmts >$out_fmts
pix_fmts=$($showfiltfmts $filter | awk -F '[ \r]' '/^INPUT/{ print $3 }' | sort | comm -12 - $out_fmts)
for pix_fmt in $pix_fmts; do
test=$pix_fmt
video_filter "format=$pix_fmt,$filter=$filter_args" -pix_fmt $pix_fmt
done
rm $exclude_fmts $out_fmts
}
mkdir -p "$outdir"
exec 3>&2
......
FATE_LAVFI = fate-lavfi-pixfmts_copy \
fate-lavfi-pixfmts_crop \
fate-lavfi-pixfmts_hflip \
fate-lavfi-pixfmts_null \
fate-lavfi-pixfmts_pad \
fate-lavfi-pixfmts_scale \
fate-lavfi-pixfmts_vflip \
$(FATE_LAVFI): $(VREF) libavfilter/filtfmts-test$(EXESUF)
$(FATE_LAVFI): CMD = lavfitest
FATE_AVCONV += $(FATE_LAVFI)
fate-lavfi: $(FATE_LAVFI)
......@@ -81,6 +81,31 @@ FATE_FILTER_VSYNTH-$(CONFIG_FORMAT_FILTER) += fate-filter-pixdesc
fate-filter-pixdesc: CMD = pixdesc
FATE_FILTER_PIXFMTS += fate-filter-pixfmts-copy
fate-filter-pixfmts-copy: CMD = pixfmts
FATE_FILTER_PIXFMTS += fate-filter-pixfmts-crop
fate-filter-pixfmts-crop: CMD = pixfmts "100:100:100:100"
FATE_FILTER_PIXFMTS += fate-filter-pixfmts-hflip
fate-filter-pixfmts-hflip: CMD = pixfmts
FATE_FILTER_PIXFMTS += fate-filter-pixfmts-null
fate-filter-pixfmts-null: CMD = pixfmts
FATE_FILTER_PIXFMTS += fate-filter-pixfmts-pad
fate-filter-pixfmts-pad: CMD = pixfmts "500:400:20:20"
FATE_FILTER_PIXFMTS += fate-filter-pixfmts-scale
fate-filter-pixfmts-scale: CMD = pixfmts "200:100"
FATE_FILTER_PIXFMTS += fate-filter-pixfmts-vflip
fate-filter-pixfmts-vflip: CMD = pixfmts
$(FATE_FILTER_PIXFMTS): libavfilter/filtfmts-test$(EXESUF)
FATE_FILTER_VSYNTH-$(CONFIG_FORMAT_FILTER) += $(FATE_FILTER_PIXFMTS)
$(FATE_FILTER_VSYNTH-yes): $(VREF)
$(FATE_FILTER_VSYNTH-yes): SRC = $(TARGET_PATH)/tests/vsynth1/%02d.pgm
......
#!/bin/sh
#
# automatic regression test for libavfilter
#
#
#set -x
set -e
. $(dirname $0)/regression-funcs.sh
eval do_$test=y
do_video_filter() {
label=$1
filters=$2
shift 2
printf '%-20s' $label
run_avconv $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src \
$ENC_OPTS -vf "$filters" -vcodec rawvideo $* -f nut md5:
}
do_lavfi_pixfmts(){
test ${test%_[bl]e} = pixfmts_$1 || return 0
filter=$1
filter_args=$2
showfiltfmts="$target_exec $target_path/libavfilter/filtfmts-test"
exclude_fmts=${outfile}${1}_exclude_fmts
out_fmts=${outfile}${1}_out_fmts
# exclude pixel formats which are not supported as input
$avconv -pix_fmts list 2>/dev/null | awk 'NR > 8 && /^\..\./ { print $2 }' | sort >$exclude_fmts
$showfiltfmts scale | awk -F '[ \r]' '/^OUTPUT/{ print $3 }' | sort | comm -23 - $exclude_fmts >$out_fmts
pix_fmts=$($showfiltfmts $filter | awk -F '[ \r]' '/^INPUT/{ print $3 }' | sort | comm -12 - $out_fmts)
for pix_fmt in $pix_fmts; do
do_video_filter $pix_fmt "format=$pix_fmt,$filter=$filter_args" -pix_fmt $pix_fmt
done
rm $exclude_fmts $out_fmts
}
# all these filters have exactly one input and exactly one output
do_lavfi_pixfmts "copy" ""
do_lavfi_pixfmts "crop" "100:100:100:100"
do_lavfi_pixfmts "hflip" ""
do_lavfi_pixfmts "null" ""
do_lavfi_pixfmts "pad" "500:400:20:20"
do_lavfi_pixfmts "scale" "200:100"
do_lavfi_pixfmts "vflip" ""
# TODO: add tests for
# direct rendering,
# chains with feedback loops
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment