Browse Source

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

tags/n2.0
Diego Biurrun 13 years ago
parent
commit
b963f021b6
12 changed files with 46 additions and 74 deletions
  1. +0
    -1
      tests/Makefile
  2. +21
    -5
      tests/fate-run.sh
  3. +0
    -13
      tests/fate/avfilter.mak
  4. +25
    -0
      tests/fate/filter-video.mak
  5. +0
    -55
      tests/lavfi-regression.sh
  6. +0
    -0
      tests/ref/fate/filter-pixfmts-copy
  7. +0
    -0
      tests/ref/fate/filter-pixfmts-crop
  8. +0
    -0
      tests/ref/fate/filter-pixfmts-hflip
  9. +0
    -0
      tests/ref/fate/filter-pixfmts-null
  10. +0
    -0
      tests/ref/fate/filter-pixfmts-pad
  11. +0
    -0
      tests/ref/fate/filter-pixfmts-scale
  12. +0
    -0
      tests/ref/fate/filter-pixfmts-vflip

+ 0
- 1
tests/Makefile View File

@@ -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


+ 21
- 5
tests/fate-run.sh View File

@@ -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


+ 0
- 13
tests/fate/avfilter.mak View File

@@ -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)

+ 25
- 0
tests/fate/filter-video.mak View File

@@ -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



+ 0
- 55
tests/lavfi-regression.sh View File

@@ -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

tests/ref/lavfi/pixfmts_copy → tests/ref/fate/filter-pixfmts-copy View File


tests/ref/lavfi/pixfmts_crop → tests/ref/fate/filter-pixfmts-crop View File


tests/ref/lavfi/pixfmts_hflip → tests/ref/fate/filter-pixfmts-hflip View File


tests/ref/lavfi/pixfmts_null → tests/ref/fate/filter-pixfmts-null View File


tests/ref/lavfi/pixfmts_pad → tests/ref/fate/filter-pixfmts-pad View File


tests/ref/lavfi/pixfmts_scale → tests/ref/fate/filter-pixfmts-scale View File


tests/ref/lavfi/pixfmts_vflip → tests/ref/fate/filter-pixfmts-vflip View File


Loading…
Cancel
Save