Usage: configure [options]
Options: [defaults in brackets after descriptions]
-Standard options:
+Help options:
--help print this message
+ --list-decoders show all available decoders
+ --list-encoders show all available encoders
+ --list-hwaccels show all available hardware accelerators
+ --list-demuxers show all available demuxers
+ --list-muxers show all available muxers
+ --list-parsers show all available parsers
+ --list-protocols show all available protocols
+ --list-bsfs show all available bitstream filters
+ --list-indevs show all available input devices
+ --list-outdevs show all available output devices
+ --list-filters show all available filters
+
+Standard options:
--logfile=FILE log tests and output to FILE [config.log]
--disable-logging do not log configure debug information
--prefix=PREFIX install in PREFIX [$prefix]
--incdir=DIR install includes in DIR [PREFIX/include]
--mandir=DIR install man page in DIR [PREFIX/share/man]
-Configuration options:
- --disable-static do not build static libraries [no]
- --enable-shared build shared libraries [no]
+Licensing options:
--enable-gpl allow use of GPL code, the resulting libs
and binaries will be under GPL [no]
--enable-version3 upgrade (L)GPL to version 3 [no]
--enable-nonfree allow use of nonfree code, the resulting libs
and binaries will be unredistributable [no]
+
+Configuration options:
+ --disable-static do not build static libraries [no]
+ --enable-shared build shared libraries [no]
+ --enable-small optimize for size instead of speed
+ --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
+ --enable-gray enable full grayscale support (slower color)
+ --disable-swscale-alpha disable alpha channel support in swscale
+
+Component options:
--disable-doc do not build documentation
- --disable-ffmpeg disable ffmpeg build
--disable-avconv disable avconv build
--disable-avplay disable avplay build
--disable-avprobe disable avprobe build
--disable-avcodec disable libavcodec build
--disable-avformat disable libavformat build
--disable-swscale disable libswscale build
- --disable-postproc disable libpostproc build
--disable-avfilter disable video filter support [no]
--disable-pthreads disable pthreads [auto]
- --enable-w32threads use Win32 threads [no]
+ --disable-w32threads disable Win32 threads [auto]
--enable-x11grab enable X11 grabbing [no]
--disable-network disable network support [no]
- --enable-gray enable full grayscale support (slower color)
- --disable-swscale-alpha disable alpha channel support in swscale
- --disable-fastdiv disable table-based division
- --enable-small optimize for size instead of speed
- --disable-aandct disable AAN DCT code
--disable-dct disable DCT code
- --disable-fft disable FFT code
- --disable-golomb disable Golomb code
- --disable-huffman disable Huffman code
- --disable-lpc disable LPC code
--disable-mdct disable MDCT code
--disable-rdft disable RDFT code
+ --disable-fft disable FFT code
+ --enable-dxva2 enable DXVA2 code
--enable-vaapi enable VAAPI code
+ --enable-vda enable VDA code
--enable-vdpau enable VDPAU code
- --disable-dxva2 disable DXVA2 code
- --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
- --enable-hardcoded-tables use hardcoded tables instead of runtime generation
- --enable-memalign-hack emulate memalign, interferes with memory debuggers
+
+Individual component options:
--disable-everything disable all components listed below
--disable-encoder=NAME disable encoder NAME
--enable-encoder=NAME enable encoder NAME
--enable-protocol=NAME enable protocol NAME
--disable-protocol=NAME disable protocol NAME
--disable-protocols disable all protocols
+ --enable-indev=NAME enable input device NAME
--disable-indev=NAME disable input device NAME
- --disable-outdev=NAME disable output device NAME
--disable-indevs disable input devices
+ --enable-outdev=NAME enable output device NAME
+ --disable-outdev=NAME disable output device NAME
--disable-outdevs disable output devices
--disable-devices disable all devices
--enable-filter=NAME enable filter NAME
--disable-filter=NAME disable filter NAME
--disable-filters disable all filters
- --list-decoders show all available decoders
- --list-encoders show all available encoders
- --list-hwaccels show all available hardware accelerators
- --list-muxers show all available muxers
- --list-demuxers show all available demuxers
- --list-parsers show all available parsers
- --list-protocols show all available protocols
- --list-bsfs show all available bitstream filters
- --list-indevs show all available input devices
- --list-outdevs show all available output devices
- --list-filters show all available filters
External library support:
--enable-avisynth enable reading of AVISynth script files [no]
--enable-bzlib enable bzlib [autodetect]
--enable-frei0r enable frei0r video filtering
+ --enable-gnutls enable gnutls [no]
--enable-libopencore-amrnb enable AMR-NB de/encoding via libopencore-amrnb [no]
--enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no]
--enable-libopencv enable video filtering via libopencv [no]
--enable-libnut enable NUT (de)muxing via libnut,
native (de)muxer exists [no]
--enable-libopenjpeg enable JPEG 2000 decoding via OpenJPEG [no]
+ --enable-libpulse enable Pulseaudio input via libpulse [no]
--enable-librtmp enable RTMP[E] support via librtmp [no]
--enable-libschroedinger enable Dirac support via libschroedinger [no]
- --enable-libspeex enable Speex decoding via libspeex [no]
+ --enable-libspeex enable Speex support via libspeex [no]
--enable-libtheora enable Theora encoding via libtheora [no]
--enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
--enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
--enable-libxavs enable AVS encoding via xavs [no]
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvid encoder exists [no]
- --enable-mlib enable Sun medialib [no]
+ --enable-openssl enable openssl [no]
--enable-zlib enable zlib [autodetect]
Advanced options (experts only):
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
--extra-libs=ELIBS add ELIBS [$ELIBS]
--extra-version=STRING version string suffix []
+ --optflags override optimization-related compiler flags
--build-suffix=SUFFIX library name suffix []
+ --malloc-prefix=PREFIX prefix malloc and related names with PREFIX
--arch=ARCH select architecture [$arch]
--cpu=CPU select the minimum required CPU (affects
instruction selection, may crash on older CPUs)
+ --enable-pic build position-independent code
+ --enable-sram allow use of on-chip SRAM
+ --disable-symver disable symbol versioning
+ --disable-fastdiv disable table-based division
+ --enable-hardcoded-tables use hardcoded tables instead of runtime generation
+ --disable-safe-bitstream-reader
+ disable buffer boundary checking in bitreaders
+ (faster, but may crash)
+ --enable-memalign-hack emulate memalign, interferes with memory debuggers
+
+Optimization options (experts only):
--disable-asm disable all assembler optimizations
--disable-altivec disable AltiVec optimizations
--disable-amd3dnow disable 3DNow! optimizations
--disable-armv6 disable armv6 optimizations
--disable-armv6t2 disable armv6t2 optimizations
--disable-armvfp disable ARM VFP optimizations
- --disable-iwmmxt disable iwmmxt optimizations
--disable-mmi disable MMI optimizations
- --disable-neon disable neon optimizations
+ --disable-neon disable NEON optimizations
--disable-vis disable VIS optimizations
--disable-yasm disable use of yasm assembler
- --enable-pic build position-independent code
- --malloc-prefix=PFX prefix malloc and related names with PFX
- --enable-sram allow use of on-chip SRAM
- --disable-symver disable symbol versioning
- --optflags override optimization-related compiler flags
Developer options (useful when working on Libav itself):
--disable-debug disable debugging symbols
--enable-extra-warnings enable more compiler warnings
--samples=PATH location of test samples for FATE, if not set use
\$FATE_SAMPLES at make invocation time.
+ --enable-xmm-clobber-test check XMM registers for clobbering (Win64-only;
+ should be used only for debugging purposes)
NOTE: Object files are built at the place where configure is launched.
EOF
}
print_config_asm(){
- enabled $1 && echo "%define $2"
+ enabled $1 && v=1 || v=0
+ echo "%define $2 $v"
}
print_config(){
protocols
"
+PROGRAM_LIST="
+ avconv
+ avplay
+ avprobe
+ avserver
+"
+
CONFIG_LIST="
$COMPONENT_LIST
- aandct
+ $PROGRAM_LIST
ac3dsp
avcodec
avdevice
dwt
dxva2
fastdiv
- ffmpeg
- avconv
- avplay
- avprobe
- avserver
fft
frei0r
- golomb
+ gnutls
gpl
gray
- h264dsp
- h264pred
hardcoded_tables
- huffman
libcdio
libdc1394
libdirac
libopencore_amrwb
libopencv
libopenjpeg
+ libpulse
librtmp
libschroedinger
libspeex
libx264
libxavs
libxvid
- lpc
lsp
mdct
memalign_hack
- mlib
mpegaudiodsp
network
nonfree
+ openssl
pic
- postproc
rdft
rtpdec
runtime_cpudetect
+ safe_bitstream_reader
shared
sinewin
small
swscale_alpha
thumb
vaapi
+ vda
vdpau
version3
+ xmm_clobber_test
x11grab
zlib
"
armv6t2
armvfp
avx
- iwmmxt
mmi
mmx
mmx2
alsa_asoundlib_h
altivec_h
arpa_inet_h
+ asm_mod_y
attribute_may_alias
attribute_packed
- bswap
closesocket
cmov
dcbzl
dev_bktr_ioctl_bt848_h
dev_bktr_ioctl_meteor_h
dev_ic_bt8xx_h
- dev_video_meteor_ioctl_meteor_h
dev_video_bktr_ioctl_bt848_h
+ dev_video_meteor_ioctl_meteor_h
dlfcn_h
dlopen
dos_paths
fork
getaddrinfo
gethrtime
+ GetProcessAffinityMask
GetProcessMemoryInfo
GetProcessTimes
getrusage
gnu_as
- struct_rusage_ru_maxrss
ibm_asm
inet_aton
inline_asm
loongson
lrint
lrintf
- lzo1x_999_compress
machine_ioctl_bt848_h
machine_ioctl_meteor_h
malloc_h
memalign
mkstemp
mmap
+ poll_h
posix_memalign
round
roundf
+ sched_getaffinity
sdl
sdl_video_size
setmode
+ setrlimit
sndio_h
socklen_t
soundcard_h
- poll_h
- setrlimit
strerror_r
strptime
strtok_r
struct_addrinfo
struct_ipv6_mreq
+ struct_rusage_ru_maxrss
struct_sockaddr_in6
struct_sockaddr_sa_len
struct_sockaddr_storage
+ struct_v4l2_frmivalenum_discrete
symver
- symver_gnu_asm
symver_asm_label
+ symver_gnu_asm
+ sysconf
+ sysctl
sys_mman_h
+ sys_param_h
sys_resource_h
sys_select_h
sys_soundcard_h
# options emitted with CONFIG_ prefix but not available on command line
CONFIG_EXTRA="
+ aandct
avutil
+ golomb
gplv3
+ h264chroma
+ h264dsp
+ h264pred
+ h264qpel
+ huffman
lgplv3
+ lpc
"
CMDLINE_SELECT="
armv6_deps="arm"
armv6t2_deps="arm"
armvfp_deps="arm"
-iwmmxt_deps="arm"
neon_deps="arm"
vfpv3_deps="armvfp"
fast_clz_if_any="alpha armv5te avr32 mips ppc x86"
fast_unaligned_if_any="armv6 ppc x86"
-need_memalign="altivec neon sse"
inline_asm_deps="!tms470"
+need_memalign="altivec neon sse"
symver_if_any="symver_asm_label symver_gnu_asm"
h263_vaapi_hwaccel_select="vaapi h263_decoder"
h263i_decoder_select="h263_decoder"
h263p_encoder_select="h263_encoder"
-h264_decoder_select="golomb h264dsp h264pred"
+h264_decoder_select="golomb h264chroma h264dsp h264pred h264qpel"
h264_dxva2_hwaccel_deps="dxva2api_h"
h264_dxva2_hwaccel_select="dxva2 h264_decoder"
-h264_vaapi_hwaccel_select="vaapi"
+h264_vaapi_hwaccel_select="vaapi h264_decoder"
+h264_vda_hwaccel_select="vda h264_decoder"
h264_vdpau_decoder_select="vdpau h264_decoder"
imc_decoder_select="fft mdct sinewin"
jpegls_decoder_select="golomb"
mjpeg_encoder_select="aandct"
mlp_decoder_select="mlp_parser"
mp1_decoder_select="mpegaudiodsp"
-mp2_decoder_select="mpegaudiodsp"
-mp3adu_decoder_select="mpegaudiodsp"
-mp3_decoder_select="mpegaudiodsp"
-mp3on4_decoder_select="mpegaudiodsp"
mp1float_decoder_select="mpegaudiodsp"
+mp2_decoder_select="mpegaudiodsp"
mp2float_decoder_select="mpegaudiodsp"
+mp3_decoder_select="mpegaudiodsp"
+mp3adu_decoder_select="mpegaudiodsp"
mp3adufloat_decoder_select="mpegaudiodsp"
mp3float_decoder_select="mpegaudiodsp"
+mp3on4_decoder_select="mpegaudiodsp"
mp3on4float_decoder_select="mpegaudiodsp"
-mpeg1video_encoder_select="aandct"
-mpeg2video_encoder_select="aandct"
-mpeg4_decoder_select="h263_decoder mpeg4video_parser"
-mpeg4_encoder_select="h263_encoder"
+mpc7_decoder_select="mpegaudiodsp"
+mpc8_decoder_select="mpegaudiodsp"
mpeg_vdpau_decoder_select="vdpau mpegvideo_decoder"
+mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
+mpeg_xvmc_decoder_select="mpegvideo_decoder"
mpeg1_vdpau_decoder_select="vdpau mpeg1video_decoder"
+mpeg1video_encoder_select="aandct"
mpeg2_dxva2_hwaccel_deps="dxva2api_h"
mpeg2_dxva2_hwaccel_select="dxva2 mpeg2video_decoder"
mpeg2_vaapi_hwaccel_select="vaapi mpeg2video_decoder"
+mpeg2video_encoder_select="aandct"
+mpeg4_decoder_select="h263_decoder mpeg4video_parser"
+mpeg4_encoder_select="h263_encoder"
mpeg4_vaapi_hwaccel_select="vaapi mpeg4_decoder"
mpeg4_vdpau_decoder_select="vdpau mpeg4_decoder"
-mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
-mpeg_xvmc_decoder_select="mpegvideo_decoder"
msmpeg4v1_decoder_select="h263_decoder"
msmpeg4v1_encoder_select="h263_encoder"
msmpeg4v2_decoder_select="h263_decoder"
qcelp_decoder_select="lsp"
qdm2_decoder_select="mdct rdft mpegaudiodsp"
ra_144_encoder_select="lpc"
+ralf_decoder_select="golomb"
rv10_decoder_select="h263_decoder"
rv10_encoder_select="h263_encoder"
rv20_decoder_select="h263_decoder"
rv20_encoder_select="h263_encoder"
-rv30_decoder_select="golomb h264pred"
-rv40_decoder_select="golomb h264pred"
+rv30_decoder_select="golomb h264chroma h264pred h264qpel"
+rv40_decoder_select="golomb h264chroma h264pred h264qpel"
shorten_decoder_select="golomb"
sipr_decoder_select="lsp"
snow_decoder_select="dwt"
snow_encoder_select="aandct dwt"
svq1_encoder_select="aandct"
-svq3_decoder_select="golomb h264dsp h264pred"
+svq3_decoder_select="golomb h264chroma h264dsp h264pred h264qpel"
svq3_decoder_suggest="zlib"
theora_decoder_select="vp3_decoder"
tiff_decoder_suggest="zlib"
truehd_decoder_select="mlp_decoder"
tscc_decoder_select="zlib"
twinvq_decoder_select="mdct lsp sinewin"
-vc1_decoder_select="h263_decoder"
-vc1_dxva2_hwaccel_deps="dxva2api_h DXVA_PictureParameters_wDecodedPictureIndex"
+vc1_decoder_select="h263_decoder h264chroma h264qpel"
+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"
vp6_decoder_select="huffman"
vp6a_decoder_select="vp6_decoder"
vp6f_decoder_select="vp6_decoder"
-vp8_decoder_select="h264pred"
+vp8_decoder_select="h264pred h264qpel"
wmapro_decoder_select="mdct sinewin"
wmav1_decoder_select="mdct sinewin"
wmav1_encoder_select="mdct sinewin"
wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
wmv3_vdpau_decoder_select="vc1_vdpau_decoder"
wmv3image_decoder_select="wmv3_decoder"
+zerocodec_decoder_select="zlib"
zlib_decoder_select="zlib"
zlib_encoder_select="zlib"
zmbv_decoder_select="zlib"
zmbv_encoder_select="zlib"
vaapi_deps="va_va_h"
+vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
# parsers
# external libraries
libdirac_decoder_deps="libdirac !libschroedinger"
-libdirac_encoder_deps="libdirac"
libfaac_encoder_deps="libfaac"
libgsm_decoder_deps="libgsm"
libgsm_encoder_deps="libgsm"
libschroedinger_decoder_deps="libschroedinger"
libschroedinger_encoder_deps="libschroedinger"
libspeex_decoder_deps="libspeex"
+libspeex_encoder_deps="libspeex"
libtheora_encoder_deps="libtheora"
libvo_aacenc_encoder_deps="libvo_aacenc"
libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
libdc1394_indev_deps="libdc1394"
oss_indev_deps_any="soundcard_h sys_soundcard_h"
oss_outdev_deps_any="soundcard_h sys_soundcard_h"
+pulse_indev_deps="libpulse"
sndio_indev_deps="sndio_h"
sndio_outdev_deps="sndio_h"
-v4l_indev_deps="linux_videodev_h"
v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
vfwcap_indev_extralibs="-lavicap32"
x11_grab_device_indev_deps="x11grab XShmCreateImage"
-x11_grab_device_indev_extralibs="-lX11 -lXext -lXfixes"
# protocols
gopher_protocol_deps="network"
+httpproxy_protocol_deps="network"
+httpproxy_protocol_select="tcp_protocol"
http_protocol_deps="network"
http_protocol_select="tcp_protocol"
+https_protocol_select="tls_protocol"
+librtmp_protocol_deps="librtmp"
+librtmpe_protocol_deps="librtmp"
+librtmps_protocol_deps="librtmp"
+librtmpt_protocol_deps="librtmp"
+librtmpte_protocol_deps="librtmp"
mmsh_protocol_select="http_protocol"
mmst_protocol_deps="network"
+rtmp_protocol_deps="!librtmp_protocol"
rtmp_protocol_select="tcp_protocol"
rtp_protocol_select="udp_protocol"
tcp_protocol_deps="network"
+tls_protocol_deps_any="openssl gnutls"
+tls_protocol_select="tcp_protocol"
udp_protocol_deps="network"
# filters
blackframe_filter_deps="gpl"
+boxblur_filter_deps="gpl"
cropdetect_filter_deps="gpl"
+delogo_filter_deps="gpl"
drawtext_filter_deps="libfreetype"
frei0r_filter_deps="frei0r dlopen strtok_r"
frei0r_src_filter_deps="frei0r dlopen strtok_r"
# libraries
avdevice_deps="avcodec avformat"
avformat_deps="avcodec"
-postproc_deps="gpl"
# programs
-ffmpeg_deps="avcodec avformat swscale"
-ffmpeg_select="buffer_filter"
avconv_deps="avcodec avformat swscale"
-avconv_select="buffer_filter"
avplay_deps="avcodec avformat swscale sdl"
avplay_select="rdft"
avprobe_deps="avcodec avformat"
-avserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
+avserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer !shared"
avserver_extralibs='$ldl'
doc_deps="texi2html"
dep=${v%=*}
tests=${v#*=}
for name in ${tests}; do
- eval ${name}_test_deps="'${dep}$suf1 ${dep}$suf2'"
+ append ${name}_test_deps ${dep}$suf1 ${dep}$suf2
done
done
}
+mxf_d10_test_deps="avfilter"
+seek_lavf_mxf_d10_test_deps="mxf_d10_test"
+
test_deps _encoder _decoder \
- adpcm_g726=g726 \
adpcm_ima_qt \
adpcm_ima_wav \
adpcm_ms \
asv2 \
bmp \
dnxhd="dnxhd_1080i dnxhd_720p dnxhd_720p_rd" \
- dvvideo="dv dv50" \
+ dvvideo="dv dv_411 dv50" \
ffv1 \
flac \
flashsv \
flv \
+ adpcm_g726=g726 \
gif \
h261 \
h263="h263 h263p" \
mjpeg="jpg mjpeg ljpeg" \
mp2 \
mpeg1video="mpeg mpeg1b" \
- mpeg2video="mpeg2 mpeg2thread" \
- mpeg4="mpeg4 mpeg4adv mpeg4nr mpeg4thread error rc" \
+ mpeg2video="mpeg2 mpeg2_422 mpeg2_idct_int mpeg2_ilace mpeg2_ivlc_qprd" \
+ mpeg2video="mpeg2thread mpeg2thread_ilace" \
+ mpeg4="mpeg4 mpeg4_adap mpeg4_qpel mpeg4_qprd mpeg4adv mpeg4nr" \
+ mpeg4="mpeg4thread error rc" \
msmpeg4v3=msmpeg4 \
msmpeg4v2 \
pbm=pbmpipe \
wav \
yuv4mpegpipe=yuv4mpeg \
-ac3_fixed_test_deps="ac3_fixed_encoder ac3_decoder rm_muxer rm_demuxer"
+ac3_fixed_test_deps="ac3_fixed_encoder ac3_decoder"
mpg_test_deps="mpeg1system_muxer mpegps_demuxer"
# default parameters
pkg_config_default=pkg-config
ranlib="ranlib"
yasmexe="yasm"
-nogas=":"
nm_opts='-g'
+nogas=":"
# machine
arch_default=$(uname -m)
host_os=$target_os_default
# configurable options
+enable $PROGRAM_LIST
+
enable avcodec
enable avdevice
enable avfilter
enable avformat
enable avutil
+enable swscale
+
enable asm
enable debug
enable doc
enable fastdiv
-enable ffmpeg
-enable avconv
-enable avplay
-enable avprobe
-enable avserver
enable network
enable optimizations
-enable postproc
-enable protocols
+enable safe_bitstream_reader
enable static
-enable swscale
enable swscale_alpha
# build settings
PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c)
FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c)
+ALL_COMPONENTS="
+ $BSF_LIST
+ $DECODER_LIST
+ $DEMUXER_LIST
+ $ENCODER_LIST
+ $FILTER_LIST
+ $HWACCEL_LIST
+ $INDEV_LIST
+ $MUXER_LIST
+ $OUTDEV_LIST
+ $PARSER_LIST
+ $PROTOCOL_LIST
+"
+
find_tests(){
map "echo ${2}\${v}_test" $(ls "$source_path"/tests/ref/$1 | grep -v '[^-a-z0-9_]')
}
LAVFI_TESTS=$(find_tests lavfi)
SEEK_TESTS=$(find_tests seek seek_)
+ALL_TESTS="$ACODEC_TESTS $VCODEC_TESTS $LAVF_TESTS $LAVFI_TESTS $SEEK_TESTS"
+
pcm_test_deps=$(map 'echo ${v%_*}_decoder $v' $(filter pcm_* $ENCODER_LIST))
for n in $COMPONENT_LIST; do
eval ${n}_if_any="\$$v"
done
-enable $ARCH_EXT_LIST $ACODEC_TESTS $VCODEC_TESTS $LAVF_TESTS $LAVFI_TESTS $SEEK_TESTS
+enable $ARCH_EXT_LIST $ALL_TESTS
die_unknown(){
echo "Unknown option \"$1\"."
trap 'rm -f -- $TMPFILES' EXIT
-tmpfile TMPC .c
-tmpfile TMPE $EXESUF
-tmpfile TMPH .h
-tmpfile TMPO .o
-tmpfile TMPS .S
-tmpfile TMPV .ver
-tmpfile TMPSH .sh
tmpfile TMPASM .asm
+tmpfile TMPC .c
+tmpfile TMPE $EXESUF
+tmpfile TMPH .h
+tmpfile TMPO .o
+tmpfile TMPS .S
+tmpfile TMPSH .sh
+tmpfile TMPV .ver
unset -f mktemp
die "Sanity test failed."
fi
+filter_asflags=echo
filter_cflags=echo
filter_cppflags=echo
-filter_asflags=echo
if $cc -v 2>&1 | grep -q '^gcc.*LLVM'; then
cc_type=llvm_gcc
enable malloc_aligned
gas="gas-preprocessor.pl $cc"
enabled ppc && add_asflags -force_cpusubtype_ALL
- SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)'
+ SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)'
enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress
add_ldflags -Wl,-dynamic,-search_paths_first
SLIBSUF=".dylib"
die_license_disabled gpl x11grab
die_license_disabled nonfree libfaac
+die_license_disabled nonfree openssl
die_license_disabled version3 libopencore_amrnb
die_license_disabled version3 libopencore_amrwb
enabled armv6 && check_asm armv6 '"sadd16 r0, r0, r0"'
enabled armv6t2 && check_asm armv6t2 '"movt r0, #0"'
enabled armvfp && check_asm armvfp '"fadds s0, s0, s0"'
- enabled iwmmxt && check_asm iwmmxt '"wunpckelub wr6, wr4"'
enabled neon && check_asm neon '"vadd.i16 q0, q0, q0"'
enabled vfpv3 && check_asm vfpv3 '"vmov.f32 s0, #1.0"'
+ check_asm asm_mod_y '"vmul.i32 d0, d0, %y0" :: "x"(0)'
+
enabled_all armv6t2 shared !pic && enable_pic
elif enabled mips; then
enabled ssse3 && check_asm ssse3 '"pabsw %xmm0, %xmm0"'
enabled mmx2 && check_asm mmx2 '"pmaxub %mm0, %mm1"'
- check_asm bswap '"bswap %%eax" ::: "%eax"'
-
if ! disabled_any asm mmx yasm; then
if check_cmd $yasmexe --version; then
enabled x86_64 && yasm_extra="-m amd64"
check_func strerror_r
check_func strptime
check_func strtok_r
+check_func sched_getaffinity
+check_func sysconf
+check_func sysctl
check_func_headers io.h setmode
-check_func_headers lzo/lzo1x.h lzo1x_999_compress
check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
+check_func_headers windows.h GetProcessAffinityMask
check_func_headers windows.h GetProcessTimes
check_func_headers windows.h MapViewOfFile
check_func_headers windows.h VirtualAlloc
check_header malloc.h
check_header poll.h
check_header sys/mman.h
+check_header sys/param.h
check_header sys/resource.h
check_header sys/select.h
check_header vdpau/vdpau.h
check_header vdpau/vdpau_x11.h
check_header X11/extensions/XvMClib.h
-check_struct dxva2api.h DXVA_PictureParameters wDecodedPictureIndex
-
disabled zlib || check_lib zlib.h zlibVersion -lz || disable zlib
disabled bzlib || check_lib2 bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
+if ! disabled w32threads && ! enabled pthreads; then
+ check_func _beginthreadex && enable w32threads
+fi
+
# check for some common methods of building with pthread support
# do this before the optional library checks as some of them require pthreads
if ! disabled pthreads && ! enabled w32threads; then
# these are off by default, so fail if requested and not available
enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lavifil32
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 libdirac && require_pkg_config dirac \
- "libdirac_decoder/dirac_parser.h libdirac_encoder/dirac_encoder.h" \
- "dirac_decoder_init dirac_encoder_init"
+ "libdirac_decoder/dirac_parser.h" \
+ "dirac_decoder_init"
enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
enabled libfreetype && require_pkg_config freetype2 "ft2build.h freetype/freetype.h" FT_Init_FreeType
enabled libgsm && require libgsm gsm/gsm.h gsm_create -lgsm
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 libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg
+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 libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init
enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex
enabled libvpx_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_enc_init_ver -lvpx ||
die "ERROR: libvpx encoder version must be >=0.9.1"; } }
enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 &&
- { check_cpp_condition x264.h "X264_BUILD >= 115" ||
- die "ERROR: libx264 version must be >= 0.115."; }
+ { check_cpp_condition x264.h "X264_BUILD >= 118" ||
+ die "ERROR: libx264 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 mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
+enabled openssl && { 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"; }
# libdc1394 check
if enabled libdc1394; then
texi2html -version > /dev/null 2>&1 && enable texi2html || disable texi2html
check_header linux/fb.h
-check_header linux/videodev.h
check_header linux/videodev2.h
+check_struct linux/videodev2.h "struct v4l2_frmivalenum" discrete
+
check_header sys/videoio.h
check_func_headers "windows.h vfw.h" capCreateCaptureWindow "$vfwcap_indev_extralibs"
enabled libcdio &&
check_lib2 "cdio/cdda.h cdio/paranoia.h" cdio_cddap_open "-lcdio_paranoia -lcdio_cdda -lcdio"
-enabled x11grab &&
-check_header X11/Xlib.h &&
-check_header X11/extensions/XShm.h &&
-check_header X11/extensions/Xfixes.h &&
-check_func XOpenDisplay -lX11 &&
-check_func XShmCreateImage -lX11 -lXext &&
-check_func XFixesGetCursorImage -lX11 -lXext -lXfixes
+enabled x11grab &&
+require X11 X11/Xlib.h XOpenDisplay -lX11 &&
+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
check_cpp_condition \
check_cflags -Wtype-limits
check_cflags -Wundef
check_cflags -Wmissing-prototypes
+check_cflags -Wstrict-prototypes
enabled extra_warnings && check_cflags -Winline
# add some linker flags
check_ldflags -Wl,--warn-common
-check_ldflags -Wl,-rpath-link=libpostproc:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil
+check_ldflags -Wl,-rpath-link=libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil
test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
+enabled xmm_clobber_test && \
+ check_ldflags -Wl,--wrap,avcodec_open2 \
+ -Wl,--wrap,avcodec_decode_audio4 \
+ -Wl,--wrap,avcodec_decode_video2 \
+ -Wl,--wrap,avcodec_decode_subtitle2 \
+ -Wl,--wrap,avcodec_encode_audio2 \
+ -Wl,--wrap,avcodec_encode_video \
+ -Wl,--wrap,avcodec_encode_subtitle \
+ -Wl,--wrap,sws_scale || \
+ disable xmm_clobber_test
+
echo "X{};" > $TMPV
if test_ldflags -Wl,--version-script,$TMPV; then
append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver'
check_cflags -fno-tree-vectorize
check_cflags -Werror=implicit-function-declaration
check_cflags -Werror=missing-prototypes
+ check_cflags -Werror=declaration-after-statement
elif enabled llvm_gcc; then
check_cflags -mllvm -stack-alignment=16
elif enabled clang; then
check_deps $CONFIG_LIST \
$CONFIG_EXTRA \
$HAVE_LIST \
- $DECODER_LIST \
- $ENCODER_LIST \
- $HWACCEL_LIST \
- $PARSER_LIST \
- $BSF_LIST \
- $DEMUXER_LIST \
- $MUXER_LIST \
- $FILTER_LIST \
- $INDEV_LIST \
- $OUTDEV_LIST \
- $PROTOCOL_LIST \
- $ACODEC_TESTS \
- $VCODEC_TESTS \
- $LAVF_TESTS \
- $LAVFI_TESTS \
- $SEEK_TESTS \
+ $ALL_COMPONENTS \
+ $ALL_TESTS \
enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; }
echo "ARMv6 enabled ${armv6-no}"
echo "ARMv6T2 enabled ${armv6t2-no}"
echo "ARM VFP enabled ${armvfp-no}"
- echo "IWMMXT enabled ${iwmmxt-no}"
echo "NEON enabled ${neon-no}"
fi
if enabled mips; then
echo "optimizations ${optimizations-no}"
echo "static ${static-no}"
echo "shared ${shared-no}"
-echo "postprocessing support ${postproc-no}"
echo "new filter support ${avfilter-no}"
echo "network support ${network-no}"
echo "threading support ${thread_type-no}"
+echo "safe bitstream reader ${safe_bitstream_reader-no}"
echo "SDL support ${sdl-no}"
-echo "Sun medialib support ${mlib-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 "libdirac enabled ${libdirac-no}"
echo "libopencore-amrwb support ${libopencore_amrwb-no}"
echo "libopencv support ${libopencv-no}"
echo "libopenjpeg enabled ${libopenjpeg-no}"
+echo "libpulse enabled ${libpulse-no}"
echo "librtmp enabled ${librtmp-no}"
echo "libschroedinger enabled ${libschroedinger-no}"
echo "libspeex enabled ${libspeex-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}"
echo
eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak
}
-get_version LIBSWSCALE libswscale/swscale.h
-get_version LIBPOSTPROC libpostproc/postprocess.h
get_version LIBAVCODEC libavcodec/version.h
get_version LIBAVDEVICE libavdevice/avdevice.h
+get_version LIBAVFILTER libavfilter/version.h
get_version LIBAVFORMAT libavformat/version.h
get_version LIBAVUTIL libavutil/avutil.h
-get_version LIBAVFILTER libavfilter/avfilter.h
+get_version LIBSWSCALE libswscale/swscale.h
cat > $TMPH <<EOF
/* Automatically generated by configure - do not modify! */
print_config HAVE_ "$config_files" $HAVE_LIST
print_config CONFIG_ "$config_files" $CONFIG_LIST \
$CONFIG_EXTRA \
- $DECODER_LIST \
- $ENCODER_LIST \
- $HWACCEL_LIST \
- $PARSER_LIST \
- $BSF_LIST \
- $DEMUXER_LIST \
- $MUXER_LIST \
- $FILTER_LIST \
- $PROTOCOL_LIST \
- $INDEV_LIST \
- $OUTDEV_LIST \
+ $ALL_COMPONENTS \
cat >>config.mak <<EOF
ACODEC_TESTS=$(print_enabled -n _test $ACODEC_TESTS)
pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION"
pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION"
pkgconfig_generate libavfilter "Libav video filtering library" "$LIBAVFILTER_VERSION" "$extralibs"
-pkgconfig_generate libpostproc "Libav postprocessing library" "$LIBPOSTPROC_VERSION" "" "libavutil = $LIBAVUTIL_VERSION"
pkgconfig_generate libswscale "Libav image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION"