tests/lavfi: rework lavfi-regression.sh, avoid use of ffmpeg -pix_fmts

Use lavfi-showfiltfmts for checking the format supported by the scale
filter instead. The advantage is that the scale filter may support
formats which are not supported by libswscale (namely: the pal8 format).

The new implementation is also a bit cleaner, because it doesn't depend
on the ffmpeg output.
This commit is contained in:
Stefano Sabatini 2012-05-26 10:45:48 +02:00
parent 72261fa867
commit 52b23cbf1c
1 changed files with 11 additions and 6 deletions

View File

@ -68,19 +68,24 @@ do_lavfi_pixfmts(){
filter_args=$2 filter_args=$2
showfiltfmts="$target_exec $target_path/tools/lavfi-showfiltfmts" showfiltfmts="$target_exec $target_path/tools/lavfi-showfiltfmts"
exclude_fmts=${outfile}${1}_exclude_fmts scale_exclude_fmts=${outfile}${1}_scale_exclude_fmts
out_fmts=${outfile}${1}_out_fmts scale_in_fmts=${outfile}${1}_scale_in_fmts
scale_out_fmts=${outfile}${1}_scale_out_fmts
in_fmts=${outfile}${1}_in_fmts
# exclude pixel formats which are not supported as input # exclude pixel formats which are not supported as input
$avconv -pix_fmts list 2>/dev/null | sed -ne '9,$p' | grep '^\..\.' | cut -d' ' -f2 | sort >$exclude_fmts $showfiltfmts scale | awk -F '[ \r]' '/^INPUT/{ fmt=substr($3, 5); print fmt }' | sort >$scale_in_fmts
$showfiltfmts scale | awk -F '[ \r]' '/^OUTPUT/{ fmt=substr($3, 5); print fmt }' | sort | comm -23 - $exclude_fmts >$out_fmts $showfiltfmts scale | awk -F '[ \r]' '/^OUTPUT/{ fmt=substr($3, 5); print fmt }' | sort >$scale_out_fmts
comm -12 $scale_in_fmts $scale_out_fmts >$scale_exclude_fmts
$showfiltfmts $filter | awk -F '[ \r]' '/^INPUT/{ fmt=substr($3, 5); print fmt }' | sort >$in_fmts
pix_fmts=$(comm -12 $scale_exclude_fmts $in_fmts)
pix_fmts=$($showfiltfmts $filter $filter_args | awk -F '[ \r]' '/^INPUT/{ fmt=substr($3, 5); print fmt }' | sort | comm -12 - $out_fmts)
for pix_fmt in $pix_fmts; do for pix_fmt in $pix_fmts; do
do_video_filter $pix_fmt "slicify=random,format=$pix_fmt,$filter=$filter_args" -pix_fmt $pix_fmt do_video_filter $pix_fmt "slicify=random,format=$pix_fmt,$filter=$filter_args" -pix_fmt $pix_fmt
done done
rm $exclude_fmts $out_fmts rm $in_fmts $scale_in_fmts $scale_out_fmts $scale_exclude_fmts
} }
# all these filters have exactly one input and exactly one output # all these filters have exactly one input and exactly one output