log_file(){
log BEGIN $1
- pr -n -t $1 >> $logfile
+ i=1
+ while read line; do
+ printf '%5s %s\n' "${i}" "${line}"
+ i=$(($i+1))
+ done < $1 >> $logfile
log END $1
}
set_all yes $*
}
+check_requested() {
+ for var; do
+ eval test "x\$${var#!}_requested" = "xyes" && die "${var#*_} ${var/_*} cannot be enabled"
+ done
+}
+
disable(){
set_all no $*
+ check_requested $*
}
enable_weak(){
done
}
+do_enable_deep_force(){
+ for var; do
+ enabled $var && continue
+ eval sel="\$${var}_select\ \$${var}_suggest\ \$${var}_select_any"
+ pushvar var
+ enable_deep_force $sel
+ popvar var
+ done
+}
+
+enable_deep_force(){
+ do_enable_deep_force $*
+ enable $*
+}
+
+request(){
+ for var; do
+ enable ${var}_requested
+ done
+ enable_deep_force $*
+}
+
enabled(){
test "${1#!}" = "$1" && op== || op=!=
eval test "x\$${1#!}" $op "xyes"
append allopts $cfg
eval dep_all="\$${cfg}_deps"
- eval dep_any="\$${cfg}_deps_any"
+ eval dep_any="\$${cfg}_deps_any\ \$${cfg}_select_any"
eval dep_sel="\$${cfg}_select"
eval dep_sgs="\$${cfg}_suggest"
eval dep_ifa="\$${cfg}_if"
blockdsp
bswapdsp
cabac
+ dirac_parse
dvprofile
faandct
faanidct
# subsystems
dct_select="rdft"
+dirac_parse_select="golomb"
error_resilience_select="me_cmp"
faandct_deps="faan fdctdsp"
faanidct_deps="faan idctdsp"
nellymoser_decoder_select="mdct sinewin"
nellymoser_encoder_select="audio_frame_queue mdct sinewin"
nuv_decoder_select="idctdsp lzo"
+nvenc_h264_encoder_deps="nvenc"
+nvenc_hevc_encoder_deps="nvenc"
on2avc_decoder_select="mdct"
opus_decoder_deps="avresample"
opus_decoder_select="imdct15"
nut_muxer_select="riffenc"
nuv_demuxer_select="riffdec"
oga_muxer_select="ogg_muxer"
-ogg_demuxer_select="golomb"
+ogg_demuxer_select="dirac_parse"
opus_muxer_select="ogg_muxer"
psp_muxer_select="mov_muxer"
rtp_demuxer_select="sdp_demuxer"
smoothstreaming_muxer_select="ismv_muxer"
spdif_muxer_select="aac_parser"
spx_muxer_select="ogg_muxer"
+swf_demuxer_suggest="zlib"
tak_demuxer_select="tak_parser"
tg2_muxer_select="mov_muxer"
tgp_muxer_select="mov_muxer"
tls_gnutls_protocol_select="tcp_protocol"
tls_openssl_protocol_deps="openssl !tls_gnutls_protocol"
tls_openssl_protocol_select="tcp_protocol"
-tls_protocol_deps_any="tls_gnutls_protocol tls_openssl_protocol"
+tls_protocol_select_any="tls_gnutls_protocol tls_openssl_protocol"
udp_protocol_select="network"
unix_protocol_deps="sys_un_h"
unix_protocol_select="network"
$PROTOCOL_LIST
"
-for n in $COMPONENT_LIST; do
- v=$(toupper ${n%s})_LIST
- eval enable \$$v
- eval ${n}_if_any="\$$v"
-done
-
enable $ARCH_EXT_LIST
die_unknown(){
}
print_3_columns() {
- cat | tr ' ' '\n' | sort | pr -r -3 -t
+ printf "%-25s %-25s %-25s\n" $(cat | tr ' ' '\n' | sort)
}
show_list() {
disable $PROGRAM_LIST
;;
--disable-everything)
- map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
+ map 'eval disable \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
;;
--disable-all)
- map 'eval unset \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
+ map 'eval disable \${$(toupper ${v%s})_LIST}' $COMPONENT_LIST
disable $LIBRARY_LIST $PROGRAM_LIST doc
;;
--enable-random|--disable-random)
is_in "${thing}s" $COMPONENT_LIST || die_unknown "$opt"
eval list=\$$(toupper $thing)_LIST
name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing}
+ test $action = enable && action="request"
$action $(filter "$name" $list)
;;
--enable-avserver|--disable-avserver*)
--enable-?*|--disable-?*)
eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
if is_in $option $COMPONENT_LIST; then
- test $action = disable && action=unset
eval $action \$$(toupper ${option%s})_LIST
elif is_in $option $CMDLINE_SELECT; then
$action $option
# is disabled, see AVCODEC_LIST and following _LIST variables.
disable_components(){
- disabled ${1} && disable $(
+ disabled ${1} && disable_weak $(
eval components="\$$(toupper ${1})_COMPONENTS"
map 'eval echo \${$(toupper ${v%s})_LIST}' $components
)
map 'disable_components $v' $LIBRARY_LIST
+# Mark components that had not been enabled/disabled explicitly
+# as enabled
+
+for n in $COMPONENT_LIST; do
+ v=$(toupper ${n%s})_LIST
+ eval enable_weak \$$v
+ eval ${n}_if_any="\$$v"
+done
+
+# Make so that disabled libraries are enabled if a component
+# of them is requested
+
+for n in $LIBRARY_LIST; do
+ v=$(toupper ${n})_COMPONENTS
+ eval ${n}_if_any="\$$v"
+done
+
echo "# $0 $LIBAV_CONFIGURATION" > $logfile
set >> $logfile
arch="arm"
;;
mips*|IP*)
+ case "$arch" in
+ *el)
+ add_cppflags -EL
+ add_ldflags -EL
+ ;;
+ *eb)
+ add_cppflags -EB
+ add_ldflags -EB
+ ;;
+ esac
arch="mips"
;;
parisc*|hppa*)
check_lib "${gsm_hdr}" gsm_create -lgsm && break;
done || die "ERROR: libgsm not found"; }
enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc
-enabled libkvazaar && require_pkg_config "kvazaar >= 0.7.1" kvazaar.h kvz_api_get
+enabled libkvazaar && require_pkg_config "kvazaar >= 0.8.1" kvazaar.h kvz_api_get
enabled libmfx && require_pkg_config libmfx "mfx/mfxvideo.h" MFXInit
enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame
enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb
check_lib interface/mmal/mmal.h mmal_port_connect ; }
check_lib interface/mmal/mmal.h mmal_port_connect ; } ||
die "ERROR: mmal not found"; }
-enabled openssl && { check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto ||
+enabled openssl && { check_pkg_config openssl openssl/ssl.h SSL_library_init ||
+ check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto ||
check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 ||
die "ERROR: openssl not found"; }
check_header AVFoundation/AVFoundation.h &&
check_objcflags -fobjc-arc &&
- add_extralibs -framework Foundation -framework AVFoundation -framework CoreMedia || \
+ add_extralibs -framework Foundation -framework AVFoundation -framework CoreVideo -framework CoreMedia ||
disable AVFoundation_AVFoundation_h
check_header sys/videoio.h