--disable-faan disable floating point AAN (I)DCT code
Hardware accelerators:
+ --enable-d3d11va enable D3D11VA code
--enable-dxva2 enable DXVA2 code
--enable-vaapi enable VAAPI code
--enable-vda enable VDA code
--enable-libcdio enable audio CD grabbing with libcdio
--enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
and libraw1394 [no]
+ --enable-libdcadec enable DCA decoding via libdcadec [no]
--enable-libfaac enable AAC encoding via libfaac [no]
--enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
--enable-libfreetype enable libfreetype [no]
--enable-libxcb-xfixes enable X11 grabbing mouse rendering [auto]
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvid encoder exists [no]
+ --enable-mmal enable decoding via MMAL [no]
--enable-openssl enable openssl [no]
--enable-x11grab enable X11 grabbing (legacy) [no]
--enable-zlib enable zlib [autodetect]
(group) and PROB the probability associated with
NAME (default 0.5).
--random-seed=VALUE seed value for --enable/disable-random
+ --disable-valgrind-backtrace do not print a backtrace under Valgrind
+ (only applies to --disable-optimizations builds)
NOTE: Object files are built at the place where configure is launched.
EOF
filter_audio_example
metadata_example
output_example
+ qsvdec_example
transcode_aac_example
"
libbs2b
libcdio
libdc1394
+ libdcadec
libfaac
libfdk_aac
libfontconfig
libxcb_shm
libxcb_xfixes
libxvid
+ mmal
openssl
x11grab
zlib
"
HWACCEL_LIST="
+ d3d11va
dxva2
vaapi
vda
lzo
mdct
network
- qsv
rdft
"
pod2man
texi2html
thumb
+ valgrind_backtrace
xmm_clobber_test
"
dev_video_meteor_ioctl_meteor_h
direct_h
dlfcn_h
+ d3d11_h
dxva_h
gsm_h
io_h
sys_un_h
sys_videoio_h
unistd_h
+ valgrind_valgrind_h
windows_h
winsock2_h
"
setrlimit
Sleep
strerror_r
- strptime
sysconf
sysctl
usleep
TOOLCHAIN_FEATURES="
as_dn_directive
as_func
+ as_object_arch
asm_mod_q
attribute_may_alias
attribute_packed
$TYPES_LIST
atomics_native
dos_paths
+ d3d11_cobj
+ d3d11va_lib
dxva2_lib
libc_msvcrt
libdc1394_1
sdl
section_data_rel_ro
threads
+ vaapi_x11
vdpau_x11
xlib
"
faandct
faanidct
fdctdsp
+ fmtconvert
gcrypt
golomb
gplv3
iirfilter
imdct15
intrax8
+ jpegtables
lgplv3
lpc
me_cmp
nettle
pixblockdsp
qpeldsp
+ qsv
+ qsvdec
+ qsvenc
rangecoder
riffdec
riffenc
simd_align_16_if_any="altivec neon sse"
# system capabilities
-log2_deps="!libc_msvcrt"
-
symver_if_any="symver_asm_label symver_gnu_asm"
+valgrind_backtrace_deps="!optimizations valgrind_valgrind_h"
# threading support
atomics_gcc_if="sync_val_compare_and_swap"
mpegaudiodsp_select="dct"
mpegvideo_select="blockdsp hpeldsp idctdsp me_cmp videodsp"
mpegvideoenc_select="me_cmp mpegvideo pixblockdsp qpeldsp"
+qsvdec_select="qsv"
+qsvenc_select="qsv"
# decoders / encoders
aac_decoder_select="imdct15 mdct sinewin"
aac_encoder_select="audio_frame_queue iirfilter mdct sinewin"
aac_latm_decoder_select="aac_decoder aac_latm_parser"
-ac3_decoder_select="ac3_parser ac3dsp bswapdsp mdct"
+ac3_decoder_select="ac3_parser ac3dsp bswapdsp fmtconvert mdct"
ac3_encoder_select="ac3dsp audiodsp mdct me_cmp"
ac3_fixed_encoder_select="ac3dsp audiodsp mdct me_cmp"
aic_decoder_select="golomb idctdsp"
cook_decoder_select="audiodsp mdct sinewin"
cscd_decoder_select="lzo"
cscd_decoder_suggest="zlib"
-dca_decoder_select="mdct"
+dca_decoder_select="fmtconvert mdct"
dnxhd_decoder_select="blockdsp idctdsp"
dnxhd_encoder_select="aandcttables blockdsp fdctdsp idctdsp mpegvideoenc pixblockdsp"
dvvideo_decoder_select="dvprofile idctdsp"
fourxm_decoder_select="blockdsp bswapdsp"
fraps_decoder_select="bswapdsp huffman"
g2m_decoder_deps="zlib"
-g2m_decoder_select="blockdsp idctdsp"
+g2m_decoder_select="blockdsp idctdsp jpegtables"
h261_decoder_select="mpeg_er mpegvideo"
h261_encoder_select="aandcttables mpegvideoenc"
h263_decoder_select="error_resilience h263_parser h263dsp mpeg_er mpegvideo qpeldsp"
h264_decoder_select="cabac golomb h264chroma h264dsp h264pred h264qpel startcode videodsp"
h264_decoder_suggest="error_resilience"
h264_qsv_decoder_deps="libmfx"
-h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsv h264_qsv_hwaccel"
+h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec h264_qsv_hwaccel"
+h264_qsv_encoder_deps="libmfx"
+h264_qsv_encoder_select="qsvenc"
hevc_decoder_select="bswapdsp cabac golomb videodsp"
huffyuv_decoder_select="bswapdsp huffyuvdsp"
huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp"
jpegls_encoder_select="golomb"
jv_decoder_select="blockdsp"
lagarith_decoder_select="huffyuvdsp"
-ljpeg_encoder_select="aandcttables idctdsp"
+ljpeg_encoder_select="aandcttables idctdsp jpegtables"
loco_decoder_select="golomb"
mdec_decoder_select="blockdsp idctdsp mpegvideo"
metasound_decoder_select="lsp mdct sinewin"
mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp"
-mjpeg_decoder_select="blockdsp hpeldsp idctdsp"
-mjpeg_encoder_select="aandcttables mpegvideoenc"
+mjpeg_decoder_select="blockdsp hpeldsp idctdsp jpegtables"
+mjpeg_encoder_select="aandcttables jpegtables mpegvideoenc"
mjpegb_decoder_select="mjpeg_decoder"
mlp_decoder_select="mlp_parser"
motionpixels_decoder_select="bswapdsp"
svq3_decoder_select="h264_decoder hpeldsp tpeldsp"
svq3_decoder_suggest="zlib"
tak_decoder_select="audiodsp"
+tdsc_decoder_deps="zlib"
+tdsc_decoder_select="mjpeg_decoder"
theora_decoder_select="vp3_decoder"
thp_decoder_select="mjpeg_decoder"
tiff_decoder_suggest="zlib"
zmbv_encoder_deps="zlib"
# hardware accelerators
+d3d11va_deps="d3d11_h dxva_h"
dxva2_deps="dxva2api_h"
vaapi_deps="va_va_h"
vda_deps="VideoDecodeAcceleration_VDADecoder_h pthreads"
h263_vaapi_hwaccel_select="h263_decoder"
h263_vdpau_hwaccel_deps="vdpau"
h263_vdpau_hwaccel_select="h263_decoder"
+h264_d3d11va_hwaccel_deps="d3d11va"
+h264_d3d11va_hwaccel_select="h264_decoder"
h264_dxva2_hwaccel_deps="dxva2"
h264_dxva2_hwaccel_select="h264_decoder"
+h264_mmal_decoder_deps="mmal"
+h264_mmal_hwaccel_deps="mmal"
+h264_mmal_decoder_select="h264_decoder"
+h264_mmal_encoder_deps="mmal"
h264_qsv_hwaccel_deps="libmfx"
h264_vaapi_hwaccel_deps="vaapi"
h264_vaapi_hwaccel_select="h264_decoder"
h264_vda_old_hwaccel_select="h264_decoder"
h264_vdpau_hwaccel_deps="vdpau"
h264_vdpau_hwaccel_select="h264_decoder"
+hevc_d3d11va_hwaccel_deps="d3d11va DXVA_PicParams_HEVC"
+hevc_d3d11va_hwaccel_select="hevc_decoder"
hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC"
hevc_dxva2_hwaccel_select="hevc_decoder"
mpeg1_vdpau_hwaccel_deps="vdpau"
mpeg1_vdpau_hwaccel_select="mpeg1video_decoder"
+mpeg2_d3d11va_hwaccel_deps="d3d11va"
+mpeg2_d3d11va_hwaccel_select="mpeg2video_decoder"
mpeg2_dxva2_hwaccel_deps="dxva2"
mpeg2_dxva2_hwaccel_select="mpeg2video_decoder"
mpeg2_vaapi_hwaccel_deps="vaapi"
mpeg4_vaapi_hwaccel_select="mpeg4_decoder"
mpeg4_vdpau_hwaccel_deps="vdpau"
mpeg4_vdpau_hwaccel_select="mpeg4_decoder"
+vc1_d3d11va_hwaccel_deps="d3d11va"
+vc1_d3d11va_hwaccel_select="vc1_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_hwaccel_deps="vdpau"
vc1_vdpau_hwaccel_select="vc1_decoder"
+wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel"
wmv3_dxva2_hwaccel_select="vc1_dxva2_hwaccel"
wmv3_vaapi_hwaccel_select="vc1_vaapi_hwaccel"
wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
mpeg4video_parser_select="error_resilience h263dsp mpeg_er mpegvideo qpeldsp"
vc1_parser_select="mpegvideo startcode vc1_decoder"
+# bitstream_filters
+mjpeg2jpeg_bsf_select="jpegtables"
+
# external libraries
+libdcadec_decoder_deps="libdcadec"
libfaac_encoder_deps="libfaac"
libfaac_encoder_select="audio_frame_queue"
libfdk_aac_decoder_deps="libfdk_aac"
opus_muxer_select="ogg_muxer"
psp_muxer_select="mov_muxer"
rtp_demuxer_select="sdp_demuxer"
-rtpdec_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer"
+rtpdec_select="asf_demuxer jpegtables mov_demuxer mpegts_demuxer rm_demuxer rtp_protocol"
rtsp_demuxer_select="http_protocol rtpdec"
rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain"
sap_demuxer_select="sdp_demuxer"
sctp_protocol_select="network"
srtp_protocol_select="rtp_protocol"
tcp_protocol_select="network"
-tls_protocol_deps_any="openssl gnutls"
+tls_gnutls_protocol_deps="gnutls"
+tls_openssl_protocol_deps="openssl !tls_gnutls_protocol"
+tls_protocol_deps_any="tls_gnutls_protocol tls_openssl_protocol"
tls_protocol_select="tcp_protocol"
udp_protocol_select="network"
unix_protocol_deps="sys_un_h"
filter_audio_example_deps="avfilter avutil"
metadata_example_deps="avformat avutil"
output_example_deps="avcodec avformat avutil swscale"
+qsvdec_example_deps="avcodec avutil libmfx h264_qsv_decoder vaapi_x11"
transcode_aac_example_deps="avcodec avformat avresample"
# libraries, in linking order
setpts_filter trim_filter"
avplay_deps="avcodec avformat avresample swscale sdl"
avplay_libs='$sdl_libs'
-avplay_select="rdft"
+avplay_select="rdft transpose_filter hflip_filter vflip_filter"
avprobe_deps="avcodec avformat"
# documentation
enable safe_bitstream_reader
enable static
enable swscale_alpha
+enable valgrind_backtrace
# By default, enable only those hwaccels that have no external dependencies.
-enable dxva2 vda vdpau
+enable d3d11va dxva2 vda vdpau
# build settings
SHFLAGS='-shared -Wl,-soname,$$(@F)'
echo "# $0 $LIBAV_CONFIGURATION" > $logfile
set >> $logfile
-test -n "$cross_prefix" && enable cross_compile
-
-if enabled cross_compile; then
- test -n "$arch" && test -n "$target_os" ||
- die "Must specify target arch and OS when cross-compiling"
-fi
-
case "$toolchain" in
clang-asan)
cc_default="clang"
;;
esac
+test -n "$cross_prefix" && enable cross_compile
+
+if enabled cross_compile; then
+ test -n "$arch" && test -n "$target_os" ||
+ die "Must specify target arch and OS when cross-compiling"
+fi
+
ar_default="${cross_prefix}${ar_default}"
cc_default="${cross_prefix}${cc_default}"
nm_default="${cross_prefix}${nm_default}"
-Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \
-wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \
-wd4152 -wd4324 -we4013 -wd4100 -wd4214 \
- -wd4273 -wd4701 ;;
+ -wd4273 -wd4554 -wd4701 ;;
esac
done
}
_flags_filter=armasm_flags
elif $_cc 2>&1 | grep -q Microsoft; then
_type=msvc
- _ident=$($cc 2>&1 | head -n1)
+ _ident=$($_cc 2>&1 | head -n1)
_DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)'
_DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs'
_cflags_speed="-O2"
fi
elif $_cc 2>&1 | grep -q Intel; then
_type=icl
- _ident=$($cc 2>&1 | head -n1)
+ _ident=$($_cc 2>&1 | head -n1)
_depflags='-QMMD -QMF$(@:.o=.d) -QMT$@'
# Not only is O3 broken on 13.x+ but it is slower on all previous
# versions (tested) as well.
elif check_arm_arch 6T2; then echo armv6t2;
elif check_arm_arch 7; then echo armv7;
elif check_arm_arch 7A 7_A; then echo armv7-a;
+ elif check_arm_arch 7S; then echo armv7-a;
elif check_arm_arch 7R 7_R; then echo armv7-r;
elif check_arm_arch 7M 7_M; then echo armv7-m;
elif check_arm_arch 7EM 7E_M; then echo armv7-m;
check_as <<EOF && enable as_dn_directive
ra .dn d0.i16
.unreq ra
+EOF
+
+ # llvm's integrated assembler supports .object_arch from llvm 3.5
+ [ "$objformat" = elf ] && check_as <<EOF && enable as_object_arch
+.object_arch armv4
EOF
[ $target_os != win32 ] && enabled_all armv6t2 shared !pic && enable_weak_pic
check_func sched_getaffinity
check_func setrlimit
check_func strerror_r
-check_func strptime
check_func sysconf
check_func sysctl
check_func usleep
check_header direct.h
check_header dlfcn.h
+check_header d3d11.h
check_header dxva.h
check_header dxva2api.h
check_header io.h
check_header sys/time.h
check_header sys/un.h
check_header unistd.h
+check_header valgrind/valgrind.h
check_header vdpau/vdpau.h
check_header vdpau/vdpau_x11.h
check_header VideoDecodeAcceleration/VDADecoder.h
done
# these are off by default, so fail if requested and not available
-enabled avisynth && { { check_header "avisynth/avisynth_c.h" && check_lib2 "windows.h" LoadLibrary; } ||
- { check_header "avxsynth/avxsynth_c.h" && check_lib2 "dlfcn.h" dlopen -ldl; } ||
+enabled avisynth && { check_lib2 "avisynth/avisynth_c.h windows.h" LoadLibrary ||
+ check_lib2 "avxsynth/avxsynth_c.h dlfcn.h" dlopen -ldl ||
die "ERROR: LoadLibrary/dlopen not found, or avisynth header not found"; }
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 libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac
enabled libfontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit
{ check_cpp_condition x264.h "X264_BUILD >= 118" ||
die "ERROR: libx264 version must be >= 0.118."; }
enabled libx265 && require_pkg_config x265 x265.h x265_encoder_encode &&
- { check_cpp_condition x265.h "X265_BUILD >= 17" ||
- die "ERROR: libx265 version must be >= 17."; }
+ { 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 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/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline ;
+ add_extralibs -L/opt/vc/lib/ -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host ;
+ check_lib interface/mmal/mmal.h mmal_port_connect ; }
+ check_lib interface/mmal/mmal.h mmal_port_connect ; } ||
+ die "ERROR: mmal not found"; }
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 ||
require Xfixes X11/extensions/Xfixes.h XFixesGetCursorImage -lXfixes
fi
+enabled d3d11_h &&
+ check_cc <<EOF && enable d3d11_cobj
+#define _WIN32_WINNT 0x0600
+#define COBJMACROS
+#include <windows.h>
+#include <d3d11.h>
+int main(void) { ID3D11VideoDecoder *o = NULL; ID3D11VideoDecoder_Release(o); return 0; }
+EOF
+
+enabled vaapi && enabled xlib &&
+ check_lib2 "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 &&
+ enable vaapi_x11
+
enabled vdpau &&
check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" ||
disable vdpau
check_cflags -Werror=declaration-after-statement
check_cflags -Werror=vla
check_cflags -Werror=format-security
+ check_cflags -fdiagnostics-color=auto
enabled extra_warnings || check_disable_warning -Wno-maybe-uninitialized
elif enabled llvm_gcc; then
check_cflags -mllvm -stack-alignment=16
# not supported (build will fail)
disable inline_asm
fi
+ # msvcrt10 x64 incorrectly enables log2, only msvcrt12 (MSVC 2013) onwards actually has log2.
+ check_cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION >= 12" || disable log2
fi
case $as_type in
$HAVE_LIST \
$ALL_COMPONENTS \
+enabled_all d3d11va d3d11_cobj CoTaskMemFree &&
+ prepend avconv_libs $($ldflags_filter "-lole32") &&
+ enable d3d11va_lib
+
enabled_all dxva2 CoTaskMemFree &&
prepend avconv_libs $($ldflags_filter "-lole32") &&
enable dxva2_lib