diff --git a/tests/Makefile b/tests/Makefile index 495df10ee1..0495132c89 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -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 diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 6e30b5afe5..9d98531cae 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -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 diff --git a/tests/fate/avfilter.mak b/tests/fate/avfilter.mak deleted file mode 100644 index edca861c7e..0000000000 --- a/tests/fate/avfilter.mak +++ /dev/null @@ -1,13 +0,0 @@ -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) diff --git a/tests/fate/filter-video.mak b/tests/fate/filter-video.mak index 5238aade38..c85161ac81 100644 --- a/tests/fate/filter-video.mak +++ b/tests/fate/filter-video.mak @@ -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 diff --git a/tests/lavfi-regression.sh b/tests/lavfi-regression.sh deleted file mode 100755 index 588a53f69e..0000000000 --- a/tests/lavfi-regression.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/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 diff --git a/tests/ref/lavfi/pixfmts_copy b/tests/ref/fate/filter-pixfmts-copy similarity index 100% rename from tests/ref/lavfi/pixfmts_copy rename to tests/ref/fate/filter-pixfmts-copy diff --git a/tests/ref/lavfi/pixfmts_crop b/tests/ref/fate/filter-pixfmts-crop similarity index 100% rename from tests/ref/lavfi/pixfmts_crop rename to tests/ref/fate/filter-pixfmts-crop diff --git a/tests/ref/lavfi/pixfmts_hflip b/tests/ref/fate/filter-pixfmts-hflip similarity index 100% rename from tests/ref/lavfi/pixfmts_hflip rename to tests/ref/fate/filter-pixfmts-hflip diff --git a/tests/ref/lavfi/pixfmts_null b/tests/ref/fate/filter-pixfmts-null similarity index 100% rename from tests/ref/lavfi/pixfmts_null rename to tests/ref/fate/filter-pixfmts-null diff --git a/tests/ref/lavfi/pixfmts_pad b/tests/ref/fate/filter-pixfmts-pad similarity index 100% rename from tests/ref/lavfi/pixfmts_pad rename to tests/ref/fate/filter-pixfmts-pad diff --git a/tests/ref/lavfi/pixfmts_scale b/tests/ref/fate/filter-pixfmts-scale similarity index 100% rename from tests/ref/lavfi/pixfmts_scale rename to tests/ref/fate/filter-pixfmts-scale diff --git a/tests/ref/lavfi/pixfmts_vflip b/tests/ref/fate/filter-pixfmts-vflip similarity index 100% rename from tests/ref/lavfi/pixfmts_vflip rename to tests/ref/fate/filter-pixfmts-vflip