Component options:
--disable-doc do not build documentation
+ --disable-pod2man do not build manual pages
+ --disable-texi2html do not build HTML documentation
--disable-avdevice disable libavdevice build
--disable-avcodec disable libavcodec build
--disable-avformat disable libavformat build
--enable-libfontconfig font configuration and management
--enable-libfreetype font rendering
--enable-libgsm GSM audio encoding/decoding
+ --enable-libhdcd HDCD decoding filter
--enable-libilbc ILBC audio encoding/decoding
--enable-libkvazaar HEVC video encoding
--enable-libmp3lame MP3 audio encoding
--enable-libxcb-xfixes X11 mouse rendering [auto]
--enable-libxvid MPEG-4 ASP video encoding
--enable-openssl crypto
- --enable-x11grab X11 grabbing through xlib (legacy, use xcb instead)
--enable-zlib compression [autodetect]
The following libraries provide various hardware acceleration features:
--disable-safe-bitstream-reader
disable buffer boundary checking in bitreaders
(faster, but may crash)
- --enable-memalign-hack emulate memalign, interferes with memory debuggers
--enable-sram allow use of on-chip SRAM
Optimization options (experts only):
EOF
}
-check_lib(){
- log check_lib "$@"
- header="$1"
- func="$2"
+test_cflags_cpp(){
+ log test_cflags_cpp "$@"
+ flags=$1
+ condition=$2
shift 2
- check_header $header && check_func $func "$@" && add_extralibs "$@"
+ set -- $($cflags_filter "$flags")
+ check_cpp "$@" <<EOF
+#if !($condition)
+#error "unsatisfied condition: $condition"
+#endif
+EOF
}
-check_lib2(){
- log check_lib2 "$@"
+check_lib(){
+ log check_lib "$@"
headers="$1"
funcs="$2"
shift 2
}
require(){
- name="$1"
- header="$2"
- func="$3"
- shift 3
- check_lib $header $func "$@" || die "ERROR: $name not found"
-}
-
-require2(){
name="$1"
headers="$2"
func="$3"
shift 3
- check_lib2 "$headers" $func "$@" || die "ERROR: $name not found"
+ check_lib "$headers" $func "$@" || die "ERROR: $name not found"
}
require_pkg_config(){
"
EXAMPLE_LIST="
- avcodec_example
+ decode_audio_example
+ decode_video_example
+ encode_audio_example
+ encode_video_example
filter_audio_example
metadata_example
output_example
transcode_aac_example
"
-HWACCEL_LIBRARY_LIST="
+HWACCEL_LIBRARY_NONFREE_LIST="
cuda
+ libnpp
+"
+HWACCEL_LIBRARY_LIST="
+ $HWACCEL_LIBRARY_NONFREE_LIST
d3d11va
dxva2
libmfx
- libnpp
mmal
nvenc
omx
vdpau
"
+EXTERNAL_LIBRARY_GPL_LIST="
+ libcdio
+ libx264
+ libx265
+ libxavs
+ libxvid
+"
+
+EXTERNAL_LIBRARY_NONFREE_LIST="
+ libfaac
+ libfdk_aac
+ openssl
+"
+
+EXTERNAL_LIBRARY_VERSION3_LIST="
+ libopencore_amrnb
+ libopencore_amrwb
+ libvo_aacenc
+ libvo_amrwbenc
+"
+
EXTERNAL_LIBRARY_LIST="
+ $EXTERNAL_LIBRARY_GPL_LIST
+ $EXTERNAL_LIBRARY_NONFREE_LIST
+ $EXTERNAL_LIBRARY_VERSION3_LIST
avisynth
bzlib
frei0r
gnutls
libbs2b
- libcdio
libdc1394
libdcadec
- libfaac
- libfdk_aac
libfontconfig
libfreetype
libgsm
+ libhdcd
libilbc
libkvazaar
libmp3lame
- libopencore_amrnb
- libopencore_amrwb
libopencv
libopenh264
libopenjpeg
libspeex
libtheora
libtwolame
- libvo_aacenc
- libvo_amrwbenc
libvorbis
libvpx
libwavpack
libwebp
- libx264
- libx265
- libxavs
libxcb
libxcb_shm
libxcb_xfixes
- libxvid
- openssl
- x11grab
zlib
"
$LIBRARY_LIST
$PROGRAM_LIST
$SUBSYSTEM_LIST
- memalign_hack
neon_clobber_test
pic
pod2man
fast_cmov
local_aligned_8
local_aligned_16
+ local_aligned_32
simd_align_16
+ simd_align_32
"
BUILTIN_LIST="
poll_h
sndio_h
soundcard_h
+ stdatomic_h
sys_mman_h
sys_param_h
sys_resource_h
TOOLCHAIN_FEATURES="
as_dn_directive
+ as_fpu_directive
as_func
as_object_arch
asm_mod_q
$(add_suffix _external $ARCH_EXT_LIST)
$(add_suffix _inline $ARCH_EXT_LIST)
$ARCH_FEATURES
- $ATOMICS_LIST
$BUILTIN_LIST
$HAVE_LIST_CMDLINE
$HAVE_LIST_PUB
$THREADS_LIST
$TOOLCHAIN_FEATURES
$TYPES_LIST
- atomics_native
dos_paths
dxva2_lib
libc_msvcrt
fast_clz_if_any="aarch64 alpha avr32 mips ppc x86"
fast_unaligned_if_any="aarch64 ppc x86"
simd_align_16_if_any="altivec neon sse"
+simd_align_32_if_any="avx"
# system capabilities
symver_if_any="symver_asm_label symver_gnu_asm"
vc1_vaapi_hwaccel_select="vc1_decoder"
vc1_vdpau_hwaccel_deps="vdpau"
vc1_vdpau_hwaccel_select="vc1_decoder"
+vp8_vaapi_hwaccel_deps="vaapi VAPictureParameterBufferVP8"
+vp8_vaapi_hwaccel_select="vp8_decoder"
wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel"
wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel"
wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
vfwcap_indev_extralibs="-lavicap32"
-x11grab_indev_deps="x11grab"
-x11grab_xcb_indev_deps="libxcb"
+xcbgrab_indev_deps="libxcb"
# protocols
ffrtmpcrypt_protocol_deps="!librtmp_protocol"
boxblur_filter_deps="gpl"
bs2b_filter_deps="libbs2b"
cropdetect_filter_deps="gpl"
+deinterlace_qsv_filter_deps="libmfx"
delogo_filter_deps="gpl"
drawtext_filter_deps="libfreetype"
frei0r_filter_deps="frei0r dlopen"
frei0r_filter_extralibs='$ldl'
frei0r_src_filter_deps="frei0r dlopen"
frei0r_src_filter_extralibs='$ldl'
+hdcd_filter_deps="libhdcd"
hqdn3d_filter_deps="gpl"
interlace_filter_deps="gpl"
ocv_filter_deps="libopencv"
scale_vaapi_filter_deps="vaapi VAProcPipelineParameterBuffer"
# examples
-avcodec_example_deps="avcodec avutil"
+decode_audio_example_deps="avcodec avutil"
+decode_video_example_deps="avcodec avutil"
+encode_audio_example_deps="avcodec avutil"
+encode_video_example_deps="avcodec avutil"
filter_audio_example_deps="avfilter avutil"
metadata_example_deps="avformat avutil"
output_example_deps="avcodec avformat avutil swscale"
avconv_deps="avcodec avfilter avformat avresample swscale"
avconv_select="aformat_filter anull_filter asyncts_filter atrim_filter format_filter
fps_filter null_filter resample_filter scale_filter
- setpts_filter trim_filter"
+ trim_filter"
avplay_deps="avcodec avfilter avformat avresample sdl"
avplay_libs='$sdl_libs'
avplay_select="rdft format_filter transpose_filter hflip_filter vflip_filter"
_ld_lib='lib%.a'
_ld_path='-libpath:'
_flags='-nologo'
- _cflags='-D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS'
elif $_cc 2>&1 | grep -q Intel; then
_type=icl
_ident=$($_cc 2>&1 | head -n1)
_flags='-nologo -Qdiag-error:4044,10157'
# -Qvec- -Qsimd- to prevent miscompilation, -GS for consistency
# with MSVC which enables it by default.
- _cflags='-D_USE_MATH_DEFINES -Qms0 -Qvec- -Qsimd- -GS'
+ _cflags='-Qms0 -Qvec- -Qsimd- -GS'
+ elif $_cc -? 2>/dev/null | grep -q 'LLVM.*Linker'; then
+ # lld can emulate multiple different linkers; in ms link.exe mode,
+ # the -? parameter gives the help output which contains an identifyable
+ # string, while it gives an error in other modes.
+ _type=lld-link
+ # The link.exe mode doesn't have a switch for getting the version,
+ # but we can force it back to gnu mode and get the version from there.
+ _ident=$($_cc -flavor gnu --version)
+ _ld_o='-out:$@'
+ _flags_filter=msvc_flags
+ _ld_lib='lib%.a'
+ _ld_path='-libpath:'
elif $_cc --version 2>/dev/null | grep -q ^cparser; then
_type=cparser
_ident=$($_cc --version | head -n1)
fi
add_cppflags -D_ISOC99_SOURCE
-check_cflags -std=c99
+
+# some compilers silently accept -std=c11, so we also need to check that the
+# version macro is defined properly
+if test_cflags_cpp -std=c11 "__STDC_VERSION__ >= 201112L"; then
+ add_cflags -std=c11
+else
+ check_cflags -std=c99
+fi
+
check_cc -D_FILE_OFFSET_BITS=64 <<EOF && add_cppflags -D_FILE_OFFSET_BITS=64
#include <stdlib.h>
EOF
(__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
die "ERROR: MinGW32 runtime version must be >= 3.15."
add_${pfx}cppflags -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1
+ check_${pfx}cpp_condition _mingw.h "__MSVCRT_VERSION__ < 0x0700__" &&
+ add_${pfx}cppflags -D__MSVCRT_VERSION__=0x0700
eval test \$${pfx_no_}cc_type = "gcc" &&
add_${pfx}cppflags -D__printf__=__gnu_printf__
elif check_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then
vsnprintf=avpriv_vsnprintf
fi
fi
+ add_${pfx}cppflags -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS
# 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
#endif
#endif
EOF
+ if [ "$pfx" = "" ]; then
+ check_func strtoll || add_cflags -Dstrtoll=_strtoi64
+ fi
elif check_${pfx}cpp_condition stddef.h "defined __KLIBC__"; then
eval ${pfx}libc_type=klibc
elif check_${pfx}cpp_condition sys/cdefs.h "defined __BIONIC__"; then
fi
die_license_disabled() {
- enabled $1 || { enabled $2 && die "$2 is $1 and --enable-$1 is not specified."; }
+ enabled $1 || { enabled $v && die "$v is $1 and --enable-$1 is not specified."; }
}
-die_license_disabled gpl libcdio
-die_license_disabled gpl libx264
-die_license_disabled gpl libx265
-die_license_disabled gpl libxavs
-die_license_disabled gpl libxvid
-die_license_disabled gpl x11grab
-
-die_license_disabled nonfree cuda
-die_license_disabled nonfree libfaac
-die_license_disabled nonfree libfdk_aac
-die_license_disabled nonfree libnpp
-die_license_disabled nonfree openssl
-
-die_license_disabled version3 libopencore_amrnb
-die_license_disabled version3 libopencore_amrwb
-die_license_disabled version3 libvo_aacenc
-die_license_disabled version3 libvo_amrwbenc
+map "die_license_disabled gpl" $EXTERNAL_LIBRARY_GPL_LIST
+map "die_license_disabled nonfree" $EXTERNAL_LIBRARY_NONFREE_LIST $HWACCEL_LIBRARY_NONFREE_LIST
+map "die_license_disabled version3" $EXTERNAL_LIBRARY_VERSION3_LIST
enabled version3 && { enabled gpl && enable gplv3 || enable lgplv3; }
check_as <<EOF && enable as_dn_directive
ra .dn d0.i16
.unreq ra
+EOF
+ check_as <<EOF && enable as_fpu_directive
+.fpu neon
EOF
# llvm's integrated assembler supports .object_arch from llvm 3.5
elif enabled ppc; then
- enable local_aligned_8 local_aligned_16
+ enable local_aligned_8 local_aligned_16 local_aligned_32
check_inline_asm dcbzl '"dcbzl 0, %0" :: "r"(0)'
check_inline_asm ibm_asm '"add 0, 0, 0"'
check_builtin rdtsc intrin.h "__rdtsc()"
check_builtin mm_empty mmintrin.h "_mm_empty()"
- enable local_aligned_8 local_aligned_16
+ enable local_aligned_8 local_aligned_16 local_aligned_32
# check whether EBP is available on x86
# As 'i' is stored on the stack, this program will crash
check_func ${malloc_prefix}posix_memalign && enable posix_memalign
check_cpp_condition unistd.h "defined(_POSIX_MONOTONIC_CLOCK)" &&
- check_func_headers time.h clock_gettime || { check_func_headers time.h clock_gettime -lrt && add_extralibs -lrt && LIBRT="-lrt"; }
+ check_func_headers time.h clock_gettime ||
+ { check_lib time.h clock_gettime -lrt && LIBRT="-lrt"; }
check_func fcntl
check_func fork
check_header windows.h
check_header X11/extensions/XvMClib.h
-check_lib2 "windows.h shellapi.h" CommandLineToArgvW -lshell32
-check_lib2 "windows.h wincrypt.h" CryptGenRandom -ladvapi32
-check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
+# it seems there are versions of clang in some distros that try to use the
+# gcc headers, which explodes for stdatomic
+# so we also check that atomics actually work here
+check_builtin stdatomic_h stdatomic.h "atomic_int foo; atomic_store(&foo, 0)"
+
+check_lib "windows.h shellapi.h" CommandLineToArgvW -lshell32
+check_lib "windows.h wincrypt.h" CryptGenRandom -ladvapi32
+check_lib "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
check_type "windows.h d3d11.h" "ID3D11VideoDecoder"
check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode -D_WIN32_WINNT=0x0602
+check_type "va/va.h va/va_dec_vp8.h" "VAPictureParameterBufferVP8"
check_type "va/va.h va/va_vpp.h" "VAProcPipelineParameterBuffer"
check_type "va/va.h va/va_enc_h264.h" "VAEncPictureParameterBufferH264"
check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
enabled pthreads &&
check_builtin sem_timedwait semaphore.h "sem_t *s; sem_init(s,0,0); sem_timedwait(s,0); sem_destroy(s)"
-disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib
-disabled bzlib || check_lib2 bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
+disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib
+disabled bzlib || check_lib bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
check_lib math.h sin -lm && LIBM="-lm"
-enabled vaapi && require vaapi va/va.h vaInitialize -lva
atan2f_args=2
ldexpf_args=2
done
# these are off by default, so fail if requested and not available
-enabled avisynth && { check_lib2 "avisynth/avisynth_c.h windows.h" LoadLibrary ||
- check_lib2 "avxsynth/avxsynth_c.h dlfcn.h" dlopen -ldl ||
+enabled avisynth && { check_lib "avisynth/avisynth_c.h windows.h" LoadLibrary ||
+ check_lib "avxsynth/avxsynth_c.h dlfcn.h" dlopen -ldl ||
die "ERROR: LoadLibrary/dlopen not found, or avisynth header not found"; }
enabled cuda && check_lib cuda.h cuInit -lcuda
enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; }
enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init
enabled libbs2b && require_pkg_config libbs2b bs2b.h bs2b_open
enabled libdcadec && require libdcadec libdcadec/dca_context.h dcadec_context_create -ldcadec
-enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
+enabled libfaac && require libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
enabled libfdk_aac && require_pkg_config fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen
enabled libfontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit
enabled libfreetype && require_pkg_config freetype2 "ft2build.h FT_FREETYPE_H" FT_Init_FreeType
enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do
check_lib "${gsm_hdr}" gsm_create -lgsm && break;
done || die "ERROR: libgsm not found"; }
+enabled libhdcd && require_pkg_config libhdcd "hdcd/hdcd_simple.h" hdcd_new
enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc
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 libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb
enabled libopencv && require_pkg_config opencv opencv/cv.h cvCreateImageHeader
enabled libopenh264 && require_pkg_config openh264 wels/codec_api.h WelsGetCodecVersion
-enabled libopenjpeg && { { check_header openjpeg.h && check_lib2 openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC; } ||
- { require_pkg_config libopenjpeg1 openjpeg.h opj_version -DOPJ_STATIC; } }
+enabled libopenjpeg && { check_lib openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC ||
+ require_pkg_config libopenjpeg1 openjpeg.h opj_version -DOPJ_STATIC; }
enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new
enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
enabled libx265 && require_pkg_config x265 x265.h x265_api_get &&
{ check_cpp_condition x265.h "X265_BUILD >= 57" ||
die "ERROR: libx265 version must be >= 57."; }
-enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs
+enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode -lxavs
enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
enabled mmal && { check_lib interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host ||
{ ! enabled cross_compile && {
add_cflags -isystem/opt/vc/include/IL ; }
check_header OMX_Core.h ; } ||
die "ERROR: OpenMAX IL headers not found"; }
-enabled openssl && { check_pkg_config openssl openssl/ssl.h SSL_library_init && {
+enabled openssl && { { check_pkg_config openssl openssl/ssl.h OPENSSL_init_ssl ||
+ check_pkg_config openssl openssl/ssl.h SSL_library_init; } && {
add_cflags $openssl_cflags && add_extralibs $openssl_libs; }||
check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto ||
check_lib openssl/ssl.h SSL_library_init -lssl32 -leay32 ||
die "ERROR: openssl not found"; }
if enabled gnutls; then
- { check_lib2 gmp.h mpz_export -lgmp && enable gmp; } ||
+ { check_lib gmp.h mpz_export -lgmp && enable gmp; } ||
{ check_lib gcrypt.h gcry_mpi_new -lgcrypt && enable gcrypt; }
fi
enable sdl
fi
-pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man
-texi2html -version > /dev/null 2>&1 && enable texi2html || disable texi2html
+! disabled pod2man && check_cmd pod2man --help && enable pod2man || disable pod2man
+! disabled texi2html && check_cmd texi2html -version && enable texi2html || disable texi2html
check_header linux/fb.h
check_header linux/videodev2.h
check_header soundcard.h
enabled_any alsa_indev alsa_outdev &&
- check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
+ check_lib alsa/asoundlib.h snd_pcm_htimestamp -lasound
-enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack &&
+enabled jack_indev && check_lib jack/jack.h jack_client_open -ljack &&
check_func jack_port_get_latency_range -ljack
-enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio
+enabled_any sndio_indev sndio_outdev && check_lib sndio.h sio_open -lsndio
if enabled libcdio; then
- check_lib2 "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio ||
- check_lib2 "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio ||
+ check_lib "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio ||
+ check_lib "cdio/paranoia/cdda.h cdio/paranoia/paranoia.h" cdio_cddap_open -lcdio_paranoia -lcdio_cdda -lcdio ||
die "ERROR: No usable libcdio/cdparanoia found"
fi
check_lib X11/Xlib.h XOpenDisplay -lX11 && enable xlib
-if enabled libxcb || enabled x11grab && ! disabled libxcb; then
+if enabled libxcb; then
check_pkg_config xcb-shape xcb/shape.h xcb_shape_rectangles || {
enabled libxcb && die "ERROR: libxcb not found";
- } && disable x11grab && enable libxcb
+ } && enable libxcb
disabled libxcb_shm ||
check_pkg_config xcb-shm xcb/shm.h xcb_shm_attach || {
enabled libxcb_xfixes && die "ERROR: libxcb_xfixes not found";
} && enable libxcb_xfixes
- add_cflags "$xcb_event_cflags $xcb_shm_cflags $xcb_xfixes_cflags"
- add_extralibs "$xcb_event_libs $xcb_shm_libs $xcb_xfixes_libs"
+ add_cflags "$xcb_shape_cflags $xcb_event_cflags $xcb_shm_cflags $xcb_xfixes_cflags"
+ add_extralibs "$xcb_shape_libs $xcb_event_libs $xcb_shm_libs $xcb_xfixes_libs"
fi
-if enabled x11grab; then
- enabled xlib || die "ERROR: Xlib not found"
- require Xext X11/extensions/XShm.h XShmCreateImage -lXext
- require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes
-fi
+enabled vaapi && require vaapi va/va.h vaInitialize -lva
enabled vaapi &&
check_code cc "va/va.h" "vaCreateSurfaces(0, 0, 0, 0, 0, 0, 0, 0)" ||
if enabled vaapi ; then
enabled xlib &&
- check_lib2 "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 &&
+ check_lib "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 &&
enable vaapi_x11
- check_lib2 "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm &&
+ check_lib "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm &&
enable vaapi_drm
fi
disable vdpau
enabled vdpau && enabled xlib &&
- check_lib2 "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau &&
+ check_lib "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau &&
enable vdpau_x11
enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
-Wl,--wrap,avcodec_encode_audio2 \
-Wl,--wrap,avcodec_encode_video2 \
-Wl,--wrap,avcodec_encode_subtitle \
+ -Wl,--wrap,avcodec_send_packet \
+ -Wl,--wrap,avcodec_receive_packet \
+ -Wl,--wrap,avcodec_send_frame \
+ -Wl,--wrap,avcodec_receive_frame \
-Wl,--wrap,avresample_convert ||
disable neon_clobber_test
-Wl,--wrap,avcodec_encode_audio2 \
-Wl,--wrap,avcodec_encode_video2 \
-Wl,--wrap,avcodec_encode_subtitle \
+ -Wl,--wrap,avcodec_send_packet \
+ -Wl,--wrap,avcodec_receive_packet \
+ -Wl,--wrap,avcodec_send_frame \
+ -Wl,--wrap,avcodec_receive_frame \
-Wl,--wrap,avresample_convert \
-Wl,--wrap,sws_scale ||
disable xmm_clobber_test
__declspec($_restrict) void* foo(int);
EOF
fi
- check_func strtoll || add_cflags -Dstrtoll=_strtoi64
fi
for pfx in "" host_; do
prepend avconv_libs $($ldflags_filter "-lole32") &&
enable dxva2_lib
-! enabled_any memalign posix_memalign aligned_malloc &&
- enabled simd_align_16 && enable memalign_hack
-
map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST
for thread in $THREADS_LIST; do
fi
done
+if disabled stdatomic_h; then
+ if enabled atomics_gcc; then
+ add_cppflags '-I\$(SRC_PATH)/compat/atomics/gcc'
+ elif enabled atomics_win32; then
+ add_cppflags '-I\$(SRC_PATH)/compat/atomics/win32'
+ elif enabled atomics_suncc; then
+ add_cppflags '-I\$(SRC_PATH)/compat/atomics/suncc'
+ elif enabled pthreads; then
+ add_compat atomics/pthread/stdatomic.o
+ add_cppflags '-I\$(SRC_PATH)/compat/atomics/pthread'
+ else
+ enabled threads && die "Threading is enabled, but no atomics are available"
+ add_cppflags '-I\$(SRC_PATH)/compat/atomics/dummy'
+ fi
+fi
+
enabled zlib && add_cppflags -DZLIB_CONST
# conditional library dependencies, in linking order
cp_if_changed $TMPH libavutil/avconfig.h
-test -n "$WARNINGS" && printf "\n$WARNINGS"
-
# generate the lists of enabled components
print_enabled_components(){
file=$1
print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters $BSF_LIST
print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST
+test -n "$WARNINGS" && printf "\n$WARNINGS"
+
# build pkg-config files
lib_version(){