mirror of https://git.ffmpeg.org/ffmpeg.git
configure: add --enable/disable-random option
This allows creating random configurations which is useful for testing purposes. Signed-off-by: Mans Rullgard <mans@mansr.com> Conflicts: configure Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
d0f34c96b1
commit
a128b310ef
|
@ -287,6 +287,14 @@ Developer options (useful when working on FFmpeg itself):
|
||||||
\$FATE_SAMPLES at make invocation time.
|
\$FATE_SAMPLES at make invocation time.
|
||||||
--enable-xmm-clobber-test check XMM registers for clobbering (Win64-only;
|
--enable-xmm-clobber-test check XMM registers for clobbering (Win64-only;
|
||||||
should be used only for debugging purposes)
|
should be used only for debugging purposes)
|
||||||
|
--enable-random randomly enable/disable components
|
||||||
|
--disable-random
|
||||||
|
--enable-random=LIST randomly enable/disable specific components or
|
||||||
|
--disable-random=LIST component groups. LIST is a comma-separated list
|
||||||
|
of NAME[:PROB] entries where NAME is a component
|
||||||
|
(group) and PROB the probability associated with
|
||||||
|
NAME (default 0.5).
|
||||||
|
--random-seed=VALUE seed value for --enable/disable-random
|
||||||
|
|
||||||
NOTE: Object files are built at the place where configure is launched.
|
NOTE: Object files are built at the place where configure is launched.
|
||||||
EOF
|
EOF
|
||||||
|
@ -1332,6 +1340,7 @@ CMDLINE_SET="
|
||||||
pkg_config
|
pkg_config
|
||||||
postproc_version
|
postproc_version
|
||||||
progs_suffix
|
progs_suffix
|
||||||
|
random_seed
|
||||||
samples
|
samples
|
||||||
strip
|
strip
|
||||||
sysinclude
|
sysinclude
|
||||||
|
@ -1959,6 +1968,27 @@ show_list() {
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rand_list(){
|
||||||
|
IFS=', '
|
||||||
|
set -- $*
|
||||||
|
unset IFS
|
||||||
|
for thing; do
|
||||||
|
comp=${thing%:*}
|
||||||
|
prob=${thing#$comp}
|
||||||
|
prob=${prob#:}
|
||||||
|
is_in ${comp} $COMPONENT_LIST && eval comp=\$$(toupper ${comp%s})_LIST
|
||||||
|
echo "prob ${prob:-0.5}"
|
||||||
|
printf '%s\n' $comp
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
do_random(){
|
||||||
|
action=$1
|
||||||
|
shift
|
||||||
|
random_seed=$(awk "BEGIN { srand($random_seed); print srand() }")
|
||||||
|
$action $(rand_list "$@" | awk "BEGIN { srand($random_seed) } \$1 == \"prob\" { prob = \$2; next } rand() < prob { print }")
|
||||||
|
}
|
||||||
|
|
||||||
for opt do
|
for opt do
|
||||||
optval="${opt#*=}"
|
optval="${opt#*=}"
|
||||||
case "$opt" in
|
case "$opt" in
|
||||||
|
@ -1973,6 +2003,14 @@ for opt do
|
||||||
--disable-everything)
|
--disable-everything)
|
||||||
map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
|
map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
|
||||||
;;
|
;;
|
||||||
|
--enable-random|--disable-random)
|
||||||
|
action=${opt%%-random}
|
||||||
|
do_random ${action#--} $COMPONENT_LIST
|
||||||
|
;;
|
||||||
|
--enable-random=*|--disable-random=*)
|
||||||
|
action=${opt%%-random=*}
|
||||||
|
do_random ${action#--} $optval
|
||||||
|
;;
|
||||||
--enable-*=*|--disable-*=*)
|
--enable-*=*|--disable-*=*)
|
||||||
eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/')
|
eval $(echo "${opt%%=*}" | sed 's/--/action=/;s/-/ thing=/')
|
||||||
is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
|
is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
|
||||||
|
@ -3558,6 +3596,8 @@ echo "openal enabled ${openal-no}"
|
||||||
echo "openssl enabled ${openssl-no}"
|
echo "openssl enabled ${openssl-no}"
|
||||||
echo "zlib enabled ${zlib-no}"
|
echo "zlib enabled ${zlib-no}"
|
||||||
echo "bzlib enabled ${bzlib-no}"
|
echo "bzlib enabled ${bzlib-no}"
|
||||||
|
test -n "$random_seed" &&
|
||||||
|
echo "random seed ${random_seed}"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do
|
for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do
|
||||||
|
|
Loading…
Reference in New Issue