--disable-fft disable FFT code
--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-vdpau enable VDPAU code
-
-Hardware-accelerated decoding/encoding:
- --enable-cuda enable dynamically linked CUDA [no]
- --enable-libmfx enable HW acceleration through libmfx
- --enable-mmal enable decoding via MMAL [no]
- --enable-nvenc enable encoding via NVENC [no]
- --enable-omx enable encoding via OpenMAX IL [no]
- --enable-omx-rpi enable encoding via OpenMAX IL for Raspberry Pi [no]
-
Individual component options:
--disable-everything disable all components listed below
--disable-encoder=NAME disable encoder NAME
--disable-filters disable all 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-libbs2b enable bs2b DSP library [no]
- --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-libfontconfig enable libfontconfig [no]
- --enable-libfreetype enable libfreetype [no]
- --enable-libgsm enable GSM de/encoding via libgsm [no]
- --enable-libilbc enable iLBC de/encoding via libilbc [no]
- --enable-libkvazaar enable HEVC encoding via libkvazaar [no]
- --enable-libmp3lame enable MP3 encoding via libmp3lame [no]
- --enable-libnpp enable NVIDIA Performance Primitives-based code [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-libopenh264 enable H.264 encoding via OpenH264 [no]
- --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no]
- --enable-libopus enable Opus de/encoding via libopus [no]
- --enable-libpulse enable Pulseaudio input via libpulse [no]
- --enable-librtmp enable RTMP[E] support via librtmp [no]
- --enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]
- --enable-libsnappy enable Snappy compression [no]
- --enable-libspeex enable Speex de/encoding via libspeex [no]
- --enable-libtheora enable Theora encoding via libtheora [no]
- --enable-libtwolame enable MP2 encoding via libtwolame [no]
- --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
- --enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
- --enable-libvorbis enable Vorbis encoding via libvorbis [no]
- --enable-libvpx enable VP8 and VP9 de/encoding via libvpx [no]
- --enable-libwavpack enable wavpack encoding via libwavpack [no]
- --enable-libwebp enable WebP encoding via libwebp [no]
- --enable-libx264 enable H.264 encoding via x264 [no]
- --enable-libx265 enable HEVC encoding via x265 [no]
- --enable-libxavs enable AVS encoding via xavs [no]
- --enable-libxcb enable X11 grabbing using XCB [no]
- --enable-libxcb-shm enable X11 grabbing shm communication [auto]
- --enable-libxcb-xfixes enable X11 grabbing mouse rendering [auto]
- --enable-libxvid enable Xvid encoding via xvidcore,
- native MPEG-4/Xvid encoder exists [no]
- --enable-openssl enable openssl [no]
- --enable-x11grab enable X11 grabbing (legacy) [no]
- --enable-zlib enable zlib [autodetect]
+
+ Using any of the following switches will allow Libav to link to the
+ corresponding external library. All the components depending on that library
+ will become enabled, if all their other dependencies are met and they are not
+ explicitly disabled. E.g. --enable-libwavpack will enable linking to
+ libwavpack and allow the libwavpack encoder to be built, unless it is
+ specifically disabled with --disable-encoder=libwavpack.
+
+ Note that only the system libraries are auto-detected. All the other external
+ libraries must be explicitly enabled.
+
+ Also note that the following help text describes the purpose of the libraries
+ themselves, not all their features will necessarily be usable by Libav.
+
+ --enable-avisynth video frameserver
+ --enable-bzlib bzip2 compression [autodetect]
+ --enable-frei0r video filtering plugins
+ --enable-gnutls crypto
+ --enable-libbs2b Bauer stereophonic-to-binaural DSP
+ --enable-libcdio audio CD input
+ --enable-libdc1394 IEEE 1394/Firewire camera input
+ --enable-libdcadec DCA audio decoding
+ --enable-libfaac AAC audio encoding
+ --enable-libfdk-aac AAC audio encoding/decoding
+ --enable-libfontconfig font configuration and management
+ --enable-libfreetype font rendering
+ --enable-libgsm GSM audio encoding/decoding
+ --enable-libilbc ILBC audio encoding/decoding
+ --enable-libkvazaar HEVC video encoding
+ --enable-libmp3lame MP3 audio encoding
+ --enable-libopencore-amrnb AMR-NB audio encoding/decoding
+ --enable-libopencore-amrwb AMR-WB audio decoding
+ --enable-libopencv computer vision
+ --enable-libopenh264 H.264 video encoding/decoding
+ --enable-libopenjpeg JPEG 2000 image encoding/decoding
+ --enable-libopus Opus audio encoding/decoding
+ --enable-libpulse Pulseaudio sound server
+ --enable-librtmp RTMP streaming
+ --enable-libschroedinger Dirac video encoding/decoding
+ --enable-libsnappy snappy compression
+ --enable-libspeex Speex audio encoding/decoding
+ --enable-libtheora Theora video encoding/decoding
+ --enable-libtwolame MP2 audio encoding
+ --enable-libvo-aacenc AAC audio encoding
+ --enable-libvo-amrwbenc AMR-WB audio encoding
+ --enable-libvorbis Vorbis audio encoding/decoding
+ --enable-libvpx VP* video encoding/decoding
+ --enable-libwavpack Wavpack audio encoding/decoding
+ --enable-libwebp WebP image encoding/decoding
+ --enable-libx264 H.264 video encoding
+ --enable-libx265 HEVC video encoding
+ --enable-libxavs Chinese AVS video encoding
+ --enable-libxcb X window system protocol communication
+ --enable-libxcb-shm X11 shm communication [auto]
+ --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:
+ --enable-cuda Nvidia CUDA (dynamically linked)
+ --enable-d3d11va Microsoft Direct3D 11 video acceleration [auto]
+ --enable-dxva2 Microsoft DirectX 9 video acceleration [auto]
+ --enable-libmfx Intel MediaSDK (AKA Quick Sync Video)
+ --enable-libnpp Nvidia CUDA processing
+ --enable-mmal Broadcom Multi-Media Abstraction Layer (Raspberry Pi)
+ --enable-nvenc Nvidia video encoding
+ --enable-omx OpenMAX IL
+ --enable-omx-rpi OpenMAX IL for Raspberry Pi
+ --enable-vaapi Video Acceleration API (mainly Unix/Intel)
+ --enable-vda Apple Video Decode Acceleration [auto]
+ --enable-vdpau Nvidia Video Decode and Presentation API for Unix [auto]
Toolchain options:
--arch=ARCH select architecture [$arch]
transcode_aac_example
"
+HWACCEL_LIBRARY_LIST="
+ cuda
+ d3d11va
+ dxva2
+ libmfx
+ libnpp
+ mmal
+ nvenc
+ omx
+ vaapi
+ vda
+ vdpau
+"
+
EXTERNAL_LIBRARY_LIST="
avisynth
bzlib
libilbc
libkvazaar
libmp3lame
- libnpp
libopencore_amrnb
libopencore_amrwb
libopencv
swscale_alpha
"
-HW_CODECS_LIST="
- cuda
- libmfx
- mmal
- nvenc
- omx
-"
-
-HWACCEL_LIST="
- d3d11va
- dxva2
- vaapi
- vda
- vdpau
-"
-
LIBRARY_LIST="
avcodec
avdevice
$COMPONENT_LIST
$EXAMPLE_LIST
$EXTERNAL_LIBRARY_LIST
+ $HWACCEL_LIBRARY_LIST
$FEATURE_LIST
- $HW_CODECS_LIST
- $HWACCEL_LIST
$LICENSE_LIST
$LIBRARY_LIST
$PROGRAM_LIST
lagarith_decoder_select="huffyuvdsp"
ljpeg_encoder_select="aandcttables idctdsp jpegtables"
loco_decoder_select="golomb"
+magicyuv_decoder_select="huffyuvdsp"
mdec_decoder_select="blockdsp idctdsp mpegvideo"
metasound_decoder_select="lsp mdct sinewin"
mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp"
ocv_filter_deps="libopencv"
resample_filter_deps="avresample"
scale_filter_deps="swscale"
+scale_qsv_filter_deps="libmfx"
scale_vaapi_filter_deps="vaapi VAProcPipelineParameterBuffer"
# examples
pkg_config_default=pkg-config
ranlib="ranlib"
strip="strip"
+version_script='--version-script'
yasmexe="yasm"
# machine
LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
+VERSION_SCRIPT_POSTPROCESS_CMD="cat"
asflags_filter=echo
cflags_filter=echo
echo "hwcap_1 = OVERRIDE;" > mapfile &&
add_ldflags -Wl,-M,mapfile
nm_default='nm -P -g'
- SLIB_CREATE_DEF_CMD='$(Q)perl $(SRC_PATH)/compat/solaris/make_sunver.pl $$(filter %.ver,$$^) $(OBJS) | grep -v @ > $(SUBDIR)lib$(NAME).ver-sol2'
+ version_script='-M'
+ VERSION_SCRIPT_POSTPROCESS_CMD='perl $(SRC_PATH)/compat/solaris/make_sunver.pl - $(OBJS)'
;;
netbsd)
disable symver
die_license_disabled nonfree libfaac
die_license_disabled nonfree libfdk_aac
die_license_disabled nonfree libnpp
-die_license_disabled nonfree nvenc
die_license_disabled nonfree openssl
die_license_disabled version3 libopencore_amrnb
fi
if enabled nvenc; then
- enabled cuda || check_header cuda.h || die "ERROR: cuda.h not found."
check_header nvEncodeAPI.h || die "ERROR: nvEncodeAPI.h not found."
- check_cpp_condition nvEncodeAPI.h "NVENCAPI_MAJOR_VERSION >= 5" ||
- die "ERROR: NVENC API version 4 or older is not supported"
+ check_cpp_condition nvEncodeAPI.h "NVENCAPI_MAJOR_VERSION >= 6" ||
+ die "ERROR: NVENC API version 5 or older is not supported"
fi
if check_pkg_config sdl SDL_events.h SDL_PollEvent; then
disable vdpau
enabled vdpau && enabled xlib &&
- check_func_headers "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau &&
- prepend avconv_libs $($ldflags_filter "-lvdpau") &&
+ check_lib2 "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,sws_scale ||
disable xmm_clobber_test
-echo "X { local: *; };" > $TMPV
-if test_ldflags -Wl,--version-script,$TMPV; then
- append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver'
-elif test_ldflags -Wl,-M,$TMPV; then
- append SHFLAGS '-Wl,-M,\$(SUBDIR)lib\$(NAME).ver-sol2'
-fi
+check_ld <<EOF && enable proper_dce
+extern const int array[512];
+static inline int func(void) { return array[0]; }
+int main(void) { return 0; }
+EOF
-check_cc <<EOF && enable symver_asm_label
+if enabled proper_dce; then
+ echo "X { local: *; };" > $TMPV
+ if test_ldflags -Wl,${version_script},$TMPV; then
+ append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver'
+ check_cc <<EOF && enable symver_asm_label
void ff_foo(void) __asm__ ("av_foo@VERSION");
void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
EOF
- check_cc <<EOF && enable symver_gnu_asm
+ check_cc <<EOF && enable symver_gnu_asm
__asm__(".symver ff_foo,av_foo@VERSION");
void ff_foo(void) {}
EOF
+ fi
+fi
if [ -z "$optflags" ]; then
if enabled small; then
echo "External libraries:"
print_enabled '' $EXTERNAL_LIBRARY_LIST | print_3_columns
echo
+echo "External libraries providing hardware acceleration:"
+print_enabled '' $HWACCEL_LIBRARY_LIST | print_3_columns
+echo
echo "Libraries:"
print_enabled '' $LIBRARY_LIST | print_3_columns
echo
done
-echo "Enabled Hardware-accelerated codecs:"
-print_enabled '' $HW_CODECS_LIST | print_3_columns
-echo
-
license="LGPL version 2.1 or later"
if enabled nonfree; then
license="nonfree and unredistributable"
SLIB_INSTALL_LINKS=${SLIB_INSTALL_LINKS}
SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB}
SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB}
+VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD}
SAMPLES:=${samples:-\$(LIBAV_SAMPLES)}
EOF