--enable-gray enable full grayscale support (slower color)
--disable-swscale-alpha disable alpha channel support in swscale
--disable-all disable building components, libraries and programs
- --enable-raise-major increase major version numbers in sonames [no]
Program options:
--disable-programs do not build command line programs
--enable-libopenmpt enable decoding tracked files via libopenmpt [no]
--enable-libopus enable Opus de/encoding via libopus [no]
--enable-libpulse enable Pulseaudio input via libpulse [no]
+ --enable-librsvg enable SVG rasterization via librsvg [no]
--enable-librubberband enable rubberband needed for rubberband filter [no]
--enable-librtmp enable RTMP[E] support via librtmp [no]
--enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]
libopenmpt
libopus
libpulse
+ librsvg
librtmp
libschroedinger
libshine
neon_clobber_test
ossfuzz
pic
- raise_major
thumb
valgrind_backtrace
xmm_clobber_test
asm_mod_q
attribute_may_alias
attribute_packed
+ blocks_extension
ebp_available
ebx_available
gnu_as
dxva2_deps="dxva2api_h DXVA2_ConfigPictureDecode"
dxva2_extralibs="-luser32"
dxva2_lib_deps="dxva2"
-vda_framework_deps="VideoDecodeAcceleration_VDADecoder_h"
+vda_framework_deps="VideoDecodeAcceleration_VDADecoder_h blocks_extension"
vda_framework_extralibs="-framework VideoDecodeAcceleration"
vda_deps="vda_framework pthreads"
vda_extralibs="-framework CoreFoundation -framework QuartzCore"
libopus_decoder_deps="libopus"
libopus_encoder_deps="libopus"
libopus_encoder_select="audio_frame_queue"
+librsvg_decoder_deps="librsvg"
libschroedinger_decoder_deps="libschroedinger"
libschroedinger_encoder_deps="libschroedinger"
libshine_encoder_deps="libshine"
if [ -n "$tempprefix" ] ; then
mktemp(){
- echo $tempprefix.${HOSTNAME}.${UID}
+ tmpname="$tempprefix.${HOSTNAME}.${UID}"
+ echo "$tmpname"
+ mkdir "$tmpname"
}
elif ! check_cmd mktemp -u XXXXXX; then
# simple replacement for missing mktemp
# NOT SAFE FOR GENERAL USE
mktemp(){
- echo "${2%%XXX*}.${HOSTNAME}.${UID}.$$"
+ tmpname="${2%%XXX*}.${HOSTNAME}.${UID}.$$"
+ echo "$tmpname"
+ mkdir "$tmpname"
}
fi
+FFTMPDIR=$(mktemp -d "${TMPDIR}/ffconf.XXXXXXXX" 2> /dev/null) ||
+ die "Unable to create temporary directory in $TMPDIR."
+
tmpfile(){
- tmp=$(mktemp -u "${TMPDIR}/ffconf.XXXXXXXX")$2 &&
- (set -C; exec > $tmp) 2>/dev/null ||
- die "Unable to create temporary file in $TMPDIR."
- append TMPFILES $tmp
+ tmp="${FFTMPDIR}/test"$2
+ (set -C; exec > $tmp) 2> /dev/null ||
+ die "Unable to create temporary file in $FFTMPDIR."
eval $1=$tmp
}
-trap 'rm -f -- $TMPFILES' EXIT
+trap 'rm -rf -- "$FFTMPDIR"' EXIT
+trap 'exit 2' INT
tmpfile TMPASM .asm
tmpfile TMPC .c
# specific filters, they must be specified here as well or else the
# generic catch all at the bottom will print the original flag.
-Wall) ;;
+ -Wextra) ;;
-std=c99) ;;
# Common flags
-fomit-frame-pointer) ;;
msvc_common_flags "$@"
for flag; do
case $flag in
- -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \
+ -Wall) echo -W3 -wd4018 -wd4146 -wd4244 -wd4305 \
+ -wd4554 ;;
+ -Wextra) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \
-wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \
-wd4152 -wd4324 -we4013 -wd4100 -wd4214 \
-wd4307 \
probe_cc hostcc "$host_cc"
host_cflags_filter=$_flags_filter
+host_cflags_speed=$_cflags_speed
add_host_cflags $_flags $_cflags
set_ccvars HOSTCC
add_host_cppflags -D_ISOC99_SOURCE
check_host_cflags -std=c99
check_host_cflags -Wall
-check_host_cflags -O3
+check_host_cflags $host_cflags_speed
check_64bit(){
arch32=$1
strip="lxlite -CS"
objformat="aout"
add_cppflags -D_GNU_SOURCE
- add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap
+ add_ldflags -Zomf -Zbin-files -Zargs-wild -Zhigh-mem -Zmap
SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
LIBSUF="_s.a"
SLIBPREF=""
enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; }
enabled gmp && require gmp gmp.h mpz_export -lgmp
enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init
-enabled jni && { [ $target_os = "android" ] && check_header jni.h && enabled pthreads &&
- check_lib jni "dlfcn.h" dlopen -ldl || die "ERROR: jni not found"; }
+enabled jni && { [ $target_os = "android" ] && check_header jni.h && enabled pthreads || die "ERROR: jni not found"; }
enabled ladspa && { check_header ladspa.h || die "ERROR: ladspa.h header not found"; }
enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883
enabled libass && require_pkg_config libass ass/ass.h ass_library_init
}
}
enabled libpulse && require_pkg_config libpulse pulse/pulseaudio.h pa_context_new
+enabled librsvg && require_pkg_config librsvg-2.0 librsvg-2.0/librsvg/rsvg.h rsvg_handle_render_cairo
enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
enabled librubberband && require_pkg_config "rubberband >= 1.8.1" rubberband/rubberband-c.h rubberband_new
enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init
check_disable_warning_headers -Wno-deprecated-declarations
check_disable_warning_headers -Wno-unused-variable
+check_cc <<EOF && enable blocks_extension
+void (^block)(void);
+EOF
+
# add some linker flags
check_ldflags -Wl,--warn-common
check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
enabled lto && check_ldflags "$@"
}
+check_optflags $optflags
+check_optflags -fno-math-errno
+check_optflags -fno-signed-zeros
if enabled lto; then
test "$cc_type" != "$ld_type" && die "LTO requires same compiler and linker"
disable inline_asm_direct_symbol_refs
fi
-check_optflags $optflags
-check_optflags -fno-math-errno
-check_optflags -fno-signed-zeros
-
enabled ftrapv && check_cflags -ftrapv
check_cc -mno-red-zone <<EOF && noredzone_flags="-mno-red-zone"
for pfx in "" host_; do
varname=${pfx%_}cc_type
eval "type=\$$varname"
- if [ $type = "msvc" ]; then
+ if [ "$type" = "msvc" ]; then
check_${pfx}cc <<EOF || add_${pfx}cflags -Dinline=__inline
static inline int foo(int a) { return a; }
EOF