--disable-avresample disable libavresample build [no]
--disable-pthreads disable pthreads [auto]
--disable-w32threads disable Win32 threads [auto]
- --enable-x11grab enable X11 grabbing [no]
--disable-network disable network support [no]
--disable-dct disable DCT code
+ --disable-error-resilience disable error resilience code
--disable-lsp disable LSP code
--disable-lzo disable LZO decoder code
--disable-mdct disable MDCT code
--disable-rdft disable RDFT code
--disable-fft disable FFT code
+
+Hardware accelerators:
--enable-dxva2 enable DXVA2 code
--enable-vaapi enable VAAPI code
--enable-vda enable VDA code
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvid encoder exists [no]
--enable-openssl enable openssl [no]
+ --enable-x11grab enable X11 grabbing [no]
--enable-zlib enable zlib [autodetect]
Advanced options (experts only):
--ld=LD use linker LD
--host-cc=HOSTCC use host C compiler HOSTCC
--host-cflags=HCFLAGS use HCFLAGS when compiling for host
+ --host-cppflags=HCPPFLAGS use HCPPFLAGS when compiling for host
--host-ld=HOSTLD use host linker HOSTLD
--host-ldflags=HLDFLAGS use HLDFLAGS when linking for host
--host-libs=HLIBS use libs HLIBS when linking for host
done
}
+sanitize_var_name(){
+ echo $@ | sed 's/[^A-Za-z0-9_]/_/g'
+}
+
set_safe(){
var=$1
shift
- eval $(echo "$var" | sed 's/[^A-Za-z0-9_]/_/g')='$*'
+ eval $(sanitize_var_name "$var")='$*'
}
get_safe(){
- eval echo \$$(echo "$1" | sed 's/[^A-Za-z0-9_]/_/g')
+ eval echo \$$(sanitize_var_name "$1")
}
pushvar(){
prepend extralibs $($ldflags_filter "$@")
}
+add_host_cppflags(){
+ append host_cppflags "$@"
+}
+
add_host_cflags(){
append host_cflags $($host_cflags_filter "$@")
}
}
check_struct(){
- log check_type "$@"
+ log check_struct "$@"
headers=$1
struct=$2
member=$3
enable_safe "${struct}_${member}"
}
+check_builtin(){
+ log check_builtin "$@"
+ name=$1
+ headers=$2
+ builtin=$3
+ shift 3
+ disable "$name"
+ check_code ld "$headers" "$builtin" "$@" && enable "$name"
+}
+
require(){
name="$1"
header="$2"
check_cmd $host_cc $host_cflags "$@" $HOSTCC_C $(hostcc_o $TMPO) $TMPC
}
+check_host_cppflags(){
+ log check_host_cppflags "$@"
+ check_host_cc "$@" <<EOF && append host_cppflags "$@"
+int x;
+EOF
+}
+
check_host_cflags(){
log check_host_cflags "$@"
set -- $($host_cflags_filter "$@")
protocols
"
-LIBRARY_LIST="
- avcodec
- avdevice
- avfilter
- avformat
- avresample
- avutil
- swscale
-"
-
-PROGRAM_LIST="
- avconv
- avplay
- avprobe
- avserver
-"
-
-CONFIG_LIST="
- $COMPONENT_LIST
- $LIBRARY_LIST
- $PROGRAM_LIST
+EXTERNAL_LIBRARY_LIST="
avisynth
bzlib
- dct
- doc
- dxva2
- fft
frei0r
gnutls
- gpl
- gray
- hardcoded_tables
libcdio
libdc1394
libfaac
libx264
libxavs
libxvid
+ openssl
+ x11grab
+ zlib
+"
+
+HWACCEL_LIST="
+ dxva2
+ vaapi
+ vda
+ vdpau
+"
+LIBRARY_LIST="
+ avcodec
+ avdevice
+ avfilter
+ avformat
+ avresample
+ avutil
+ swscale
+"
+
+PROGRAM_LIST="
+ avconv
+ avplay
+ avprobe
+ avserver
+"
+
+CONFIG_LIST="
+ $COMPONENT_LIST
+ $EXTERNAL_LIBRARY_LIST
+ $HWACCEL_LIST
+ $LIBRARY_LIST
+ $PROGRAM_LIST
+ dct
+ doc
+ error_resilience
+ fft
+ gpl
+ gray
+ hardcoded_tables
lsp
lzo
mdct
memalign_hack
network
nonfree
- openssl
pic
rdft
runtime_cpudetect
static
swscale_alpha
thumb
- vaapi
- vda
- vdpau
version3
xmm_clobber_test
- x11grab
- zlib
"
THREADS_LIST='
w32threads
'
+ATOMICS_LIST='
+ atomics_gcc
+ atomics_win32
+ atomics_suncc
+'
+
ARCH_LIST='
aarch64
alpha
$HAVE_LIST_CMDLINE
$HAVE_LIST_PUB
$THREADS_LIST
+ $ATOMICS_LIST
$MATH_FUNCS
aligned_malloc
aligned_stack
arpa_inet_h
asm_mod_q
asm_mod_y
+ atomic_cas_ptr
+ atomics_native
attribute_may_alias
attribute_packed
cdio_paranoia_h
loongson
machine_ioctl_bt848_h
machine_ioctl_meteor_h
+ machine_rw_barrier
malloc_h
MapViewOfFile
memalign
+ MemoryBarrier
mkstemp
mm_empty
mmap
rdtsc
sched_getaffinity
sdl
- sdl_video_size
SetConsoleTextAttribute
setmode
setrlimit
struct_v4l2_frmivalenum_discrete
symver_asm_label
symver_gnu_asm
+ sync_val_compare_and_swap
sysconf
sysctl
sys_mman_h
CONFIG_EXTRA="
aandcttables
ac3dsp
- error_resilience
+ audio_frame_queue
gcrypt
golomb
gplv3
CMDLINE_APPEND="
extra_cflags
+ host_cppflags
"
# code dependency declarations
# decoders / encoders
aac_decoder_select="mdct sinewin"
-aac_encoder_select="mdct sinewin"
+aac_encoder_select="audio_frame_queue mdct sinewin"
aac_latm_decoder_select="aac_decoder aac_latm_parser"
ac3_decoder_select="mdct ac3dsp ac3_parser"
ac3_encoder_select="mdct ac3dsp"
atrac3_decoder_select="mdct"
binkaudio_dct_decoder_select="mdct rdft dct sinewin"
binkaudio_rdft_decoder_select="mdct rdft sinewin"
-cavs_decoder_select="golomb mpegvideo"
+cavs_decoder_select="golomb h264chroma videodsp"
comfortnoise_encoder_select="lpc"
cook_decoder_select="mdct sinewin"
cscd_decoder_select="lzo"
dxa_decoder_select="zlib"
eac3_decoder_select="ac3_decoder"
eac3_encoder_select="ac3_encoder"
-eamad_decoder_select="aandcttables error_resilience mpegvideo"
+eamad_decoder_select="aandcttables mpegvideo"
eatgq_decoder_select="aandcttables"
eatqi_decoder_select="aandcttables error_resilience mpegvideo"
ffv1_decoder_select="golomb rangecoder"
h261_decoder_select="error_resilience mpegvideo"
h261_encoder_select="aandcttables mpegvideoenc"
h263_decoder_select="error_resilience h263_parser mpegvideo"
-h263_encoder_select="aandcttables error_resilience mpegvideoenc"
+h263_encoder_select="aandcttables mpegvideoenc"
h263i_decoder_select="h263_decoder"
h263p_encoder_select="h263_encoder"
-h264_decoder_select="error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo"
+h264_decoder_select="golomb h264chroma h264dsp h264pred h264qpel videodsp"
+h264_decoder_suggest="error_resilience"
huffyuv_encoder_select="huffman"
iac_decoder_select="fft mdct sinewin"
imc_decoder_select="fft mdct sinewin"
mpc7_decoder_select="mpegaudiodsp"
mpc8_decoder_select="mpegaudiodsp"
mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
-mpeg_xvmc_decoder_select="mpegvideo_decoder"
+mpeg_xvmc_decoder_select="mpeg2video_decoder"
mpeg1video_decoder_select="error_resilience mpegvideo"
-mpeg1video_encoder_select="aandcttables error_resilience mpegvideoenc"
+mpeg1video_encoder_select="aandcttables mpegvideoenc"
mpeg2video_decoder_select="error_resilience mpegvideo"
-mpeg2video_encoder_select="aandcttables error_resilience mpegvideoenc"
+mpeg2video_encoder_select="aandcttables mpegvideoenc"
mpeg4_decoder_select="h263_decoder mpeg4video_parser"
mpeg4_encoder_select="h263_encoder"
msmpeg4v1_decoder_select="h263_decoder"
-msmpeg4v1_encoder_select="h263_encoder"
msmpeg4v2_decoder_select="h263_decoder"
msmpeg4v2_encoder_select="h263_encoder"
msmpeg4v3_decoder_select="h263_decoder"
msmpeg4v3_encoder_select="h263_encoder"
-mss2_decoder_select="vc1_decoder"
+mss2_decoder_select="error_resilience vc1_decoder"
nellymoser_decoder_select="mdct sinewin"
-nellymoser_encoder_select="mdct sinewin"
+nellymoser_encoder_select="audio_frame_queue mdct sinewin"
nuv_decoder_select="lzo"
png_decoder_select="zlib"
png_encoder_select="zlib"
qcelp_decoder_select="lsp"
qdm2_decoder_select="mdct rdft mpegaudiodsp"
-ra_144_encoder_select="lpc"
+ra_144_encoder_select="audio_frame_queue lpc"
ralf_decoder_select="golomb"
-rv10_decoder_select="h263_decoder"
+rv10_decoder_select="error_resilience h263_decoder"
rv10_encoder_select="h263_encoder"
-rv20_decoder_select="h263_decoder"
+rv20_decoder_select="error_resilience h263_decoder"
rv20_encoder_select="h263_encoder"
-rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo"
-rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo"
+rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
+rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp"
shorten_decoder_select="golomb"
sipr_decoder_select="lsp"
-svq1_decoder_select="error_resilience mpegvideo"
-svq1_encoder_select="aandcttables error_resilience mpegvideoenc"
-svq3_decoder_select="error_resilience golomb h264chroma h264dsp h264pred h264qpel mpegvideo"
-svq3_decoder_suggest="zlib"
+svq1_encoder_select="aandcttables mpegvideoenc"
+svq3_decoder_select="golomb h264chroma h264dsp h264pred h264qpel mpegvideo videodsp"
+svq3_decoder_suggest="error_resilience zlib"
theora_decoder_select="vp3_decoder"
tiff_decoder_suggest="zlib"
tiff_encoder_suggest="zlib"
tscc_decoder_select="zlib"
twinvq_decoder_select="mdct lsp sinewin"
utvideo_encoder_select="huffman"
-vc1_decoder_select="h263_decoder h264chroma h264qpel"
+vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel"
vc1image_decoder_select="vc1_decoder"
vorbis_decoder_select="mdct"
vorbis_encoder_select="mdct"
vp3_decoder_select="vp3dsp videodsp"
-vp5_decoder_select="vp3dsp videodsp"
-vp6_decoder_select="huffman vp3dsp videodsp"
+vp5_decoder_select="h264chroma videodsp vp3dsp"
+vp6_decoder_select="h264chroma huffman videodsp vp3dsp"
vp6a_decoder_select="vp6_decoder"
vp6f_decoder_select="vp6_decoder"
vp8_decoder_select="h264pred videodsp"
wmavoice_decoder_select="lsp rdft dct mdct sinewin"
wmv1_decoder_select="h263_decoder"
wmv1_encoder_select="h263_encoder"
-wmv2_decoder_select="h263_decoder"
+wmv2_decoder_select="h263_decoder videodsp"
wmv2_encoder_select="h263_encoder"
wmv3_decoder_select="vc1_decoder"
wmv3image_decoder_select="wmv3_decoder"
zmbv_encoder_select="zlib"
# hardware accelerators
+dxva2_deps="dxva2api_h"
vaapi_deps="va_va_h"
vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
+vda_extralibs="-framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore"
vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
-h263_vaapi_hwaccel_select="vaapi h263_decoder"
-h263_vdpau_hwaccel_select="vdpau h263_decoder"
-h264_dxva2_hwaccel_deps="dxva2api_h"
-h264_dxva2_hwaccel_select="dxva2 h264_decoder"
-h264_vaapi_hwaccel_select="vaapi h264_decoder"
-h264_vda_hwaccel_select="vda h264_decoder"
-h264_vdpau_decoder_select="vdpau h264_decoder"
-h264_vdpau_hwaccel_select="vdpau h264_decoder"
-mpeg_vdpau_decoder_select="vdpau mpegvideo_decoder"
-mpeg1_vdpau_decoder_select="vdpau mpeg1video_decoder"
-mpeg1_vdpau_hwaccel_select="vdpau mpeg1video_decoder"
-mpeg2_dxva2_hwaccel_deps="dxva2api_h"
-mpeg2_dxva2_hwaccel_select="dxva2 mpeg2video_decoder"
-mpeg2_vaapi_hwaccel_select="vaapi mpeg2video_decoder"
-mpeg2_vdpau_hwaccel_select="vdpau mpeg2video_decoder"
-mpeg4_vaapi_hwaccel_select="vaapi mpeg4_decoder"
-mpeg4_vdpau_decoder_select="vdpau mpeg4_decoder"
-mpeg4_vdpau_hwaccel_select="vdpau mpeg4_decoder"
-vc1_dxva2_hwaccel_deps="dxva2api_h"
-vc1_dxva2_hwaccel_select="dxva2 vc1_decoder"
-vc1_vaapi_hwaccel_select="vaapi vc1_decoder"
-vc1_vdpau_decoder_select="vdpau vc1_decoder"
-vc1_vdpau_hwaccel_select="vdpau vc1_decoder"
+h263_vaapi_hwaccel_deps="vaapi"
+h263_vaapi_hwaccel_select="h263_decoder"
+h263_vdpau_hwaccel_deps="vdpau"
+h263_vdpau_hwaccel_select="h263_decoder"
+h264_dxva2_hwaccel_deps="dxva2"
+h264_dxva2_hwaccel_select="h264_decoder"
+h264_vaapi_hwaccel_deps="vaapi"
+h264_vaapi_hwaccel_select="h264_decoder"
+h264_vda_hwaccel_deps="vda"
+h264_vda_hwaccel_select="h264_decoder"
+h264_vdpau_decoder_deps="vdpau"
+h264_vdpau_decoder_select="h264_decoder"
+h264_vdpau_hwaccel_deps="vdpau"
+h264_vdpau_hwaccel_select="h264_decoder"
+mpeg_vdpau_decoder_deps="vdpau"
+mpeg_vdpau_decoder_select="mpeg2video_decoder"
+mpeg1_vdpau_decoder_deps="vdpau"
+mpeg1_vdpau_decoder_select="mpeg1video_decoder"
+mpeg1_vdpau_hwaccel_deps="vdpau"
+mpeg1_vdpau_hwaccel_select="mpeg1video_decoder"
+mpeg2_dxva2_hwaccel_deps="dxva2"
+mpeg2_dxva2_hwaccel_select="mpeg2video_decoder"
+mpeg2_vaapi_hwaccel_deps="vaapi"
+mpeg2_vaapi_hwaccel_select="mpeg2video_decoder"
+mpeg2_vdpau_hwaccel_deps="vdpau"
+mpeg2_vdpau_hwaccel_select="mpeg2video_decoder"
+mpeg4_vaapi_hwaccel_deps="vaapi"
+mpeg4_vaapi_hwaccel_select="mpeg4_decoder"
+mpeg4_vdpau_decoder_deps="vdpau"
+mpeg4_vdpau_decoder_select="mpeg4_decoder"
+mpeg4_vdpau_hwaccel_deps="vdpau"
+mpeg4_vdpau_hwaccel_select="mpeg4_decoder"
+vc1_dxva2_hwaccel_deps="dxva2"
+vc1_dxva2_hwaccel_select="vc1_decoder"
+vc1_vaapi_hwaccel_deps="vaapi"
+vc1_vaapi_hwaccel_select="vc1_decoder"
+vc1_vdpau_decoder_deps="vdpau"
+vc1_vdpau_decoder_select="vc1_decoder"
+vc1_vdpau_hwaccel_deps="vdpau"
+vc1_vdpau_hwaccel_select="vc1_decoder"
wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel"
wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
wmv3_vdpau_decoder_select="vc1_vdpau_decoder"
wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
# parsers
-h264_parser_select="error_resilience golomb h264dsp h264pred h264qpel mpegvideo"
+h264_parser_select="golomb h264chroma h264dsp h264pred h264qpel videodsp"
mpeg4video_parser_select="error_resilience mpegvideo"
mpegvideo_parser_select="error_resilience mpegvideo"
-vc1_parser_select="error_resilience mpegvideo"
+vc1_parser_select="mpegvideo"
# external libraries
libfaac_encoder_deps="libfaac"
+libfaac_encoder_select="audio_frame_queue"
libfdk_aac_encoder_deps="libfdk_aac"
+libfdk_aac_encoder_select="audio_frame_queue"
libgsm_decoder_deps="libgsm"
libgsm_encoder_deps="libgsm"
libgsm_ms_decoder_deps="libgsm"
libilbc_decoder_deps="libilbc"
libilbc_encoder_deps="libilbc"
libmp3lame_encoder_deps="libmp3lame"
+libmp3lame_encoder_select="audio_frame_queue"
libopencore_amrnb_decoder_deps="libopencore_amrnb"
libopencore_amrnb_encoder_deps="libopencore_amrnb"
+libopencore_amrnb_encoder_select="audio_frame_queue"
libopencore_amrwb_decoder_deps="libopencore_amrwb"
libopenjpeg_decoder_deps="libopenjpeg"
libopenjpeg_encoder_deps="libopenjpeg"
libopus_decoder_deps="libopus"
libopus_encoder_deps="libopus"
+libopus_encoder_select="audio_frame_queue"
libschroedinger_decoder_deps="libschroedinger"
libschroedinger_encoder_deps="libschroedinger"
libspeex_decoder_deps="libspeex"
libspeex_encoder_deps="libspeex"
+libspeex_encoder_select="audio_frame_queue"
libtheora_encoder_deps="libtheora"
libvo_aacenc_encoder_deps="libvo_aacenc"
+libvo_aacenc_encoder_select="audio_frame_queue"
libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
libvorbis_encoder_deps="libvorbis"
+libvorbis_encoder_select="audio_frame_queue"
libvpx_vp8_decoder_deps="libvpx"
libvpx_vp8_encoder_deps="libvpx"
libvpx_vp9_decoder_deps="libvpx"
mov_muxer_select="rtpenc_chain"
mp3_demuxer_select="mpegaudio_parser"
mp4_muxer_select="mov_muxer"
-mpegts_muxer_select="adts_muxer latm_muxer mpegvideo"
+mpegts_muxer_select="adts_muxer latm_muxer"
mpegtsraw_demuxer_select="mpegts_demuxer"
mxf_d10_muxer_select="mxf_muxer"
ogg_demuxer_select="golomb"
psp_muxer_select="mov_muxer"
rtp_demuxer_select="sdp_demuxer"
-rtp_muxer_select="mpegvideo"
rtpdec_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer"
rtsp_demuxer_select="http_protocol rtpdec"
rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain"
cc_default="gcc"
host_cc_default="gcc"
cp_f="cp -f"
-ln_s="ln -sf"
+ln_s="ln -s -f"
nm_default="nm -g"
objformat="elf"
pkg_config_default=pkg-config
enable static
enable swscale_alpha
+# By default, enable only those hwaccels that have no external dependencies.
+enable dxva2 vdpau
+
# build settings
SHFLAGS='-shared -Wl,-soname,$$(@F)'
AVSERVERLDFLAGS=-Wl,-E
HOSTCC_O='-o $@'
HOSTLD_O='-o $@'
-host_cflags='-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600 -O3 -g'
+host_cflags='-O3 -g'
+host_cppflags='-D_ISOC99_SOURCE -D_XOPEN_SOURCE=600'
host_libs='-lm'
host_cflags_filter=echo
host_ldflags_filter=echo
exit 1
}
+print_3_columns() {
+ cat | tr ' ' '\n' | sort | pr -r -3 -t
+}
+
show_list() {
suffix=_$1
shift
- echo $* | sed s/$suffix//g | tr ' ' '\n' | sort | pr -3 -t
+ echo $* | sed s/$suffix//g | print_3_columns
exit 0
}
case "$toolchain" in
clang-asan)
cc_default="clang"
- add_cflags -faddress-sanitizer
- add_ldflags -faddress-sanitizer
+ add_cflags -fsanitize=address
+ add_ldflags -fsanitize=address
;;
clang-tsan)
cc_default="clang"
- add_cflags -fthread-sanitizer
- add_ldflags -fthread-sanitizer
+ add_cflags -fsanitize=thread -pie
+ add_ldflags -fsanitize=thread -pie
;;
msvc)
cc_default="c99wrap cl"
fi
_cflags_speed='-O3'
_cflags_size='-Os'
- elif $_cc --version 2>/dev/null | grep -q Intel; then
+ elif $_cc --version 2>/dev/null | grep -q ^icc; then
_type=icc
_ident=$($_cc --version | head -n1)
_depflags='-MMD'
openbsd|bitrig)
disable symver
SHFLAGS='-shared'
- SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBVERSION)'
+ SLIB_INSTALL_NAME='$(SLIBNAME).$(LIBMAJOR).$(LIBMINOR)'
SLIB_INSTALL_LINKS=
oss_indev_extralibs="-lossaudio"
oss_outdev_extralibs="-lossaudio"
dlltool="${cross_prefix}dlltool"
ranlib=:
enable dos_paths
- add_cppflags -U__STRICT_ANSI__
;;
win32|win64)
if enabled shared; then
network_extralibs='-lbsd'
exeobjs=compat/plan9/main.o
disable avserver
- ln_s='ln -s -f'
cp_f='cp'
;;
none)
"defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) || \
(__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
die "ERROR: MinGW runtime version must be >= 3.15."
+ add_cppflags -U__STRICT_ANSI__
elif check_func_headers stdlib.h _get_doserrno; then
libc_type=msvcrt
add_compat strtod.o strtod=avpriv_strtod
elif enabled x86; then
- check_code ld intrin.h "__rdtsc()" && enable rdtsc
-
- check_code ld mmintrin.h "_mm_empty()" && enable mm_empty
+ check_builtin rdtsc intrin.h "__rdtsc()"
+ check_builtin mm_empty mmintrin.h "_mm_empty()"
enable local_aligned_8 local_aligned_16
check_func strptime
check_func strtok_r
check_func sched_getaffinity
+check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)"
+check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()"
+check_builtin atomic_cas_ptr atomic.h "void **ptr; void *oldval, *newval; atomic_cas_ptr(ptr, oldval, newval)"
+check_builtin MemoryBarrier windows.h "MemoryBarrier()"
check_func sysconf
check_func sysctl
check_func usleep
check_header unistd.h
check_header vdpau/vdpau.h
check_header vdpau/vdpau_x11.h
+check_header VideoDecodeAcceleration/VDADecoder.h
check_header windows.h
check_header X11/extensions/XvMClib.h
fi
done
+enabled sync_val_compare_and_swap && enable atomics_gcc
+enabled machine_rw_barrier && enabled atomic_cas_ptr && enable atomics_suncc
+enabled MemoryBarrier && enable atomics_win32
+
check_lib math.h sin -lm && LIBM="-lm"
enabled vaapi && require vaapi va/va.h vaInitialize -lva
if check_pkg_config sdl SDL_events.h SDL_PollEvent; then
check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x010201" $sdl_cflags &&
- enable sdl &&
- check_struct SDL.h SDL_VideoInfo current_w $sdl_cflags && enable sdl_video_size
+ check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x010300" $sdl_cflags &&
+ enable sdl
fi
texi2html -version > /dev/null 2>&1 && enable texi2html || disable texi2html
require Xext X11/extensions/XShm.h XShmCreateImage -lXext &&
require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes
-# check for VDA header
-if ! disabled vda && check_header VideoDecodeAcceleration/VDADecoder.h; then
- enable vda && add_extralibs -framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore
-fi
-
-if ! disabled vdpau && enabled vdpau_vdpau_h; then
+enabled vdpau &&
check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" ||
- { echolog "Please upgrade to libvdpau >= 0.2 if you would like vdpau support." && disable vdpau; }
-fi
+ disable vdpau
enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel"
# 11030: Warning unknown option --as-needed
# 10156: ignoring option '-export'; no argument required
check_ldflags -wd10156,11030
- # Allow to compile with optimizations
- check_ldflags -march=$cpu
# icc 11.0 and 11.1 work with ebp_available, but don't pass the test
enable ebp_available
if enabled x86_32; then
esac
enabled_any $THREADS_LIST && enable threads
+enabled_any $ATOMICS_LIST && enable atomics_native
enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; }
echo "threading support ${thread_type-no}"
echo "safe bitstream reader ${safe_bitstream_reader-no}"
echo "SDL support ${sdl-no}"
-echo "libdxva2 enabled ${dxva2-no}"
-echo "libva enabled ${vaapi-no}"
-echo "libvdpau enabled ${vdpau-no}"
-echo "AVISynth enabled ${avisynth-no}"
-echo "frei0r enabled ${frei0r-no}"
-echo "gnutls enabled ${gnutls-no}"
-echo "libcdio support ${libcdio-no}"
-echo "libdc1394 support ${libdc1394-no}"
-echo "libfaac enabled ${libfaac-no}"
-echo "libfdk-aac enabled ${libfdk_aac-no}"
-echo "libgsm enabled ${libgsm-no}"
-echo "libilbc enabled ${libilbc-no}"
-echo "libmp3lame enabled ${libmp3lame-no}"
-echo "libopencore-amrnb support ${libopencore_amrnb-no}"
-echo "libopencore-amrwb support ${libopencore_amrwb-no}"
-echo "libopencv support ${libopencv-no}"
-echo "libopenjpeg enabled ${libopenjpeg-no}"
-echo "libopus enabled ${libopus-no}"
-echo "libpulse enabled ${libpulse-no}"
-echo "librtmp enabled ${librtmp-no}"
-echo "libschroedinger enabled ${libschroedinger-no}"
-echo "libspeex enabled ${libspeex-no}"
-echo "libtheora enabled ${libtheora-no}"
-echo "libvo-aacenc support ${libvo_aacenc-no}"
-echo "libvo-amrwbenc support ${libvo_amrwbenc-no}"
-echo "libvorbis enabled ${libvorbis-no}"
-echo "libvpx enabled ${libvpx-no}"
-echo "libx264 enabled ${libx264-no}"
-echo "libxavs enabled ${libxavs-no}"
-echo "libxvid enabled ${libxvid-no}"
-echo "openssl enabled ${openssl-no}"
-echo "zlib enabled ${zlib-no}"
-echo "bzlib enabled ${bzlib-no}"
test -n "$random_seed" &&
echo "random seed ${random_seed}"
echo
+echo "External libraries:"
+print_enabled '' $EXTERNAL_LIBRARY_LIST | print_3_columns
+echo
+
for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do
echo "Enabled ${type}s:"
eval list=\$$(toupper $type)_LIST
- print_enabled '_*' $list | sort | pr -r -3 -t
+ print_enabled '_*' $list | print_3_columns
echo
done
HOSTCC=$host_cc
HOSTLD=$host_ld
HOSTCFLAGS=$host_cflags
+HOSTCPPFLAGS=$host_cppflags
HOSTEXESUF=$HOSTEXESUF
HOSTLDFLAGS=$host_ldflags
HOSTLIBS=$host_libs
eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO
eval echo "${lcname}_VERSION=\$${name}_VERSION" >> config.mak
eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak
+ eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> config.mak
}
map 'get_version $v' $LIBRARY_LIST