Hardware accelerators:
--disable-dxva2 disable DXVA2 code [autodetect]
- --enable-vaapi enable VAAPI code
+ --disable-vaapi disable VAAPI code [autodetect]
--enable-vda enable VDA code
--disable-vdpau disable VDPAU code [autodetect]
--enable-libxavs enable AVS encoding via xavs [no]
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvid encoder exists [no]
+ --enable-libzmq enable message passing via libzmq [no]
--enable-openal enable OpenAL 1.1 capture support [no]
--enable-opencl enable OpenCL code
--enable-openssl enable openssl [no]
libx264
libxavs
libxvid
+ libzmq
openal
opencl
openssl
CL_cl_h
clock_gettime
closesocket
- cmov
CommandLineToArgvW
cpunop
CryptGenRandom
glob
gnu_as
gsm_h
+ i686
ibm_asm
inet_aton
io_h
vis_deps="sparc"
-x86_64_suggest="cmov fast_cmov"
+x86_64_suggest="fast_cmov i686"
amd3dnow_deps="mmx"
amd3dnowext_deps="amd3dnow"
ac3_decoder_select="mdct ac3dsp ac3_parser dsputil"
ac3_encoder_select="mdct ac3dsp dsputil"
ac3_fixed_encoder_select="mdct ac3dsp dsputil"
+aic_decoder_select="dsputil golomb"
alac_encoder_select="lpc"
als_decoder_select="dsputil"
amrnb_decoder_select="lsp"
sndio_outdev_deps="sndio_h"
v4l_indev_deps="linux_videodev_h"
v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
+v4l2_outdev_deps_any="linux_videodev2_h sys_videoio_h"
vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
vfwcap_indev_extralibs="-lavicap32"
x11grab_indev_deps="x11grab"
ffrtmpcrypt_protocol_select="tcp_protocol"
ffrtmphttp_protocol_deps="!librtmp_protocol"
ffrtmphttp_protocol_select="http_protocol"
+ftp_protocol_select="tcp_protocol"
gopher_protocol_select="network"
httpproxy_protocol_select="tcp_protocol"
http_protocol_select="tcp_protocol"
ass_filter_deps="libass"
asyncts_filter_deps="avresample"
atempo_filter_deps="avcodec rdft"
+azmq_filter_deps="libzmq"
blackframe_filter_deps="gpl"
boxblur_filter_deps="gpl"
colormatrix_filter_deps="gpl"
cropdetect_filter_deps="gpl"
+dctdnoiz_filter_deps="avcodec"
delogo_filter_deps="gpl"
deshake_filter_deps="avcodec"
deshake_filter_select="dsputil"
noise_filter_deps="gpl"
resample_filter_deps="avresample"
ocv_filter_deps="libopencv"
+owdenoise_filter_deps="gpl"
pan_filter_deps="swresample"
pp_filter_deps="gpl postproc"
removelogo_filter_deps="avcodec avformat swscale"
pixfmts_super2xsai_test_deps="super2xsai_filter"
tinterlace_merge_test_deps="tinterlace_filter"
tinterlace_pad_test_deps="tinterlace_filter"
+zmq_filter_deps="libzmq"
# libraries
avcodec_deps="avutil"
enable static
enable swscale_alpha
-# By default, enable only those hwaccels that have no external dependencies.
-enable dxva2 vdpau
+# Enable hwaccels by default.
+enable dxva2 vaapi vdpau
# build settings
SHFLAGS='-shared -Wl,-soname,$$(@F)'
add_cflags -fsanitize=thread -pie
add_ldflags -fsanitize=thread -pie
;;
+ valgrind-massif)
+ target_exec_default=${valgrind:-"valgrind"}
+ target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc"
+ ;;
valgrind-memcheck)
target_exec_default=${valgrind:-"valgrind"}
target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
cpuflags="-march=$cpu"
disable mmx
;;
- # targets that do NOT support conditional mov (cmov)
+ # targets that do NOT support nopl and conditional mov (cmov)
pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3)
cpuflags="-march=$cpu"
- disable cmov
+ disable i686
;;
- # targets that do support conditional mov (cmov)
+ # targets that do support nopl and conditional mov (cmov)
i686|pentiumpro|pentium[23]|pentium-m|athlon|athlon-tbird|athlon-4|athlon-[mx]p|athlon64*|k8*|opteron*|athlon-fx|core2|corei7*|amdfam10|barcelona|atom|bdver*)
cpuflags="-march=$cpu"
- enable cmov
+ enable i686
enable fast_cmov
;;
# targets that do support conditional mov but on which it's slow
pentium4|pentium4m|prescott|nocona)
cpuflags="-march=$cpu"
- enable cmov
+ enable i686
disable fast_cmov
;;
esac
esac
enable $subarch
-enabled spic && enable pic
+enabled spic && enable_weak pic
# OS specific
case $target_os in
elif enabled arm; then
LIBTARGET=arm-wince
fi
+ check_ldflags -Wl,--nxcompat
+ check_ldflags -Wl,--dynamicbase
shlibdir_default="$bindir_default"
SLIBPREF=""
SLIBSUF=".dll"
objformat="win32"
ranlib=:
enable dos_paths
+ disable pic
;;
win32|win64)
if enabled shared; then
objformat="win32"
ranlib=:
enable dos_paths
+ disable pic
;;
cygwin*)
target_os=cygwin
SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a'
objformat="win32"
enable dos_paths
+ disable pic
;;
*-dos|freedos|opendos)
network_extralibs="-lsocket"
add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \
_snprintf=avpriv_snprintf \
vsnprintf=avpriv_vsnprintf
+ # The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to
+ # 0x601 by default unless something else is set by the user.
+ # This can easily lead to us detecting functions only present
+ # in such new versions and producing binaries requiring windows 7.0.
+ # Therefore explicitly set the default to XP unless the user has
+ # set something else on the command line.
+ check_cpp_condition stdlib.h "defined(_WIN32_WINNT)" || add_cppflags -D_WIN32_WINNT=0x0502
elif check_cpp_condition stddef.h "defined __KLIBC__"; then
libc_type=klibc
+elif check_cpp_condition sys/cdefs.h "defined __BIONIC__"; then
+ libc_type=bionic
+ add_compat strtod.o strtod=avpriv_strtod
fi
test -n "$libc_type" && enable $libc_type
echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" >config.fate
-check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable pic
+check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable_weak pic
set_default $PATHS_LIST
set_default nm
disabled optimizations || check_cflags -fomit-frame-pointer
-enable_pic() {
+enable_weak_pic() {
+ disabled pic && return
enable pic
add_cppflags -DPIC
add_cflags -fPIC
add_asflags -fPIC
}
-enabled pic && enable_pic
+enabled pic && enable_weak_pic
check_cc <<EOF || die "Symbol mangling check failed."
int ff_extern;
check_inline_asm asm_mod_q '"add r0, %Q0, %R0" :: "r"((long long)0)'
check_inline_asm asm_mod_y '"vmul.i32 d0, d0, %y0" :: "x"(0)'
- enabled_all armv6t2 shared !pic && enable_pic
+ enabled_all armv6t2 shared !pic && enable_weak_pic
elif enabled mips; then
die "yasm not found, use --disable-yasm for a crippled build"
check_yasm "vextractf128 xmm0, ymm0, 0" || disable avx_external
check_yasm "vfmaddps ymm0, ymm1, ymm2, ymm3" || disable fma4_external
- check_yasm "CPU amdnop" && enable cpunop
+ check_yasm "CPU amdnop" && enabled i686 && enable cpunop
fi
case "$cpu" in
check_lib math.h sin -lm && LIBM="-lm"
disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd || disable crystalhd
-enabled vaapi && require vaapi va/va.h vaInitialize -lva
atan2f_args=2
ldexpf_args=2
die "ERROR: libx264 must be installed and version must be >= 0.118."; }
enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs
enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
+enabled libzmq && require_pkg_config libzmq zmq.h zmq_ctx_new
enabled openal && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do
check_lib 'AL/al.h' alGetError "${al_libs}" && break; done } ||
die "ERROR: openal not found"; } &&
require Xext X11/extensions/XShm.h XShmCreateImage -lXext &&
require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes
-if ! disabled vaapi; then
- check_lib va/va.h vaInitialize -lva && {
- check_cpp_condition va/va_version.h "VA_CHECK_VERSION(0,32,0)" ||
- warn "Please upgrade to VA-API >= 0.32 if you would like full VA-API support.";
- } || disable vaapi
-fi
+enabled vaapi &&
+ check_lib va/va.h vaInitialize -lva ||
+ disable vaapi
enabled vdpau &&
check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" ||
echo "SSSE3 enabled ${ssse3-no}"
echo "AVX enabled ${avx-no}"
echo "FMA4 enabled ${fma4-no}"
- echo "CMOV enabled ${cmov-no}"
+ echo "i686 features enabled ${i686-no}"
echo "CMOV is fast ${fast_cmov-no}"
echo "EBX available ${ebx_available-no}"
echo "EBP available ${ebp_available-no}"