configure: speed up print_enabled_components()
x4 - x10 faster. Inside print_enabled components, the filter_list case invokes sed about 350 times to parse the same source file and extract different info for each arg. This is never instant, and on systems where fork is slow (notably MSYS2/Cygwin on windows) it takes many seconds. Change it to use sed once on the source file and set env vars with the parse results, then use these results inside the loop. Additionally, the cases of indev_list and outdev_list are very infrequent, but nevertheless they're faster, and arguably cleaner, with shell parameter substitutions than with command substitutions. Tested-by: Michael Niedermayer <michael@niedermayer.cc> Tested-by: Helmut K. C. Tessarek <tessarek@evermeet.cx> Tested-by: Dave Yeo <daveryeo@telus.net> Tested-by: Reino Wijnsma <rwijnsma@xs4all.nl> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
58b81ac621
commit
923586a58f
13
configure
vendored
13
configure
vendored
@ -7237,9 +7237,10 @@ echo "#endif /* AVUTIL_AVCONFIG_H */" >> $TMPH
|
||||
|
||||
cp_if_changed $TMPH libavutil/avconfig.h
|
||||
|
||||
full_filter_name(){
|
||||
sed -n "s/^extern AVFilter ff_\([avfsinkrc]\{2,5\}\)_$1;/\1_$1/p" $source_path/libavfilter/allfilters.c
|
||||
}
|
||||
# full_filter_name_foo=vf_foo
|
||||
# full_filter_name_bar=asrc_bar
|
||||
# ...
|
||||
eval "$(sed -n "s/^extern AVFilter ff_\([avfsinkrc]\{2,5\}\)_\(.*\);/full_filter_name_\2=\1_\2/p" $source_path/libavfilter/allfilters.c)"
|
||||
|
||||
# generate the lists of enabled components
|
||||
print_enabled_components(){
|
||||
@ -7252,13 +7253,13 @@ print_enabled_components(){
|
||||
if enabled $c; then
|
||||
case $name in
|
||||
filter_list)
|
||||
c=$(full_filter_name $(remove_suffix _filter $c))
|
||||
eval c=\$full_filter_name_${c%_filter}
|
||||
;;
|
||||
indev_list)
|
||||
c=$(add_suffix _demuxer $(remove_suffix _indev $c))
|
||||
c=${c%_indev}_demuxer
|
||||
;;
|
||||
outdev_list)
|
||||
c=$(add_suffix _muxer $(remove_suffix _outdev $c))
|
||||
c=${c%_outdev}_muxer
|
||||
;;
|
||||
esac
|
||||
printf " &ff_%s,\n" $c >> $TMPH
|
||||
|
Loading…
x
Reference in New Issue
Block a user