X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=1a58a4c2936b41b9dc53779600ce8b8b4d4b5423;hb=fe498ef5144d3712b887f44a0c5e654add99ead7;hp=edf89b86461d6261b06a0655eeb4832d513b2537;hpb=330177b508420a553083df94f22cbd5142de0f4a;p=ffmpeg diff --git a/configure b/configure index edf89b86461..1a58a4c2936 100755 --- a/configure +++ b/configure @@ -132,19 +132,6 @@ Component options: --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] - Individual component options: --disable-everything disable all components listed below --disable-encoder=NAME disable encoder NAME @@ -183,53 +170,79 @@ Individual component options: --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-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] @@ -1206,6 +1219,20 @@ EXAMPLE_LIST=" transcode_aac_example " +HWACCEL_LIBRARY_LIST=" + cuda + d3d11va + dxva2 + libmfx + libnpp + mmal + nvenc + omx + vaapi + vda + vdpau +" + EXTERNAL_LIBRARY_LIST=" avisynth bzlib @@ -1223,7 +1250,6 @@ EXTERNAL_LIBRARY_LIST=" libilbc libkvazaar libmp3lame - libnpp libopencore_amrnb libopencore_amrwb libopencv @@ -1258,6 +1284,7 @@ EXTERNAL_LIBRARY_LIST=" FEATURE_LIST=" gray hardcoded_tables + omx_rpi runtime_cpudetect safe_bitstream_reader shared @@ -1267,21 +1294,6 @@ FEATURE_LIST=" swscale_alpha " -HW_CODECS_LIST=" - cuda - libmfx - mmal - nvenc -" - -HWACCEL_LIST=" - d3d11va - dxva2 - vaapi - vda - vdpau -" - LIBRARY_LIST=" avcodec avdevice @@ -1321,9 +1333,8 @@ CONFIG_LIST=" $COMPONENT_LIST $EXAMPLE_LIST $EXTERNAL_LIBRARY_LIST + $HWACCEL_LIBRARY_LIST $FEATURE_LIST - $HW_CODECS_LIST - $HWACCEL_LIST $LICENSE_LIST $LIBRARY_LIST $PROGRAM_LIST @@ -1641,6 +1652,7 @@ HAVE_LIST=" libc_msvcrt libdc1394_1 libdc1394_2 + MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS sdl section_data_rel_ro threads @@ -1972,6 +1984,7 @@ jv_decoder_select="blockdsp" 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" @@ -2103,9 +2116,9 @@ h264_d3d11va_hwaccel_select="h264_decoder" h264_dxva2_hwaccel_deps="dxva2" h264_dxva2_hwaccel_select="h264_decoder" h264_mmal_decoder_deps="mmal" +h264_mmal_decoder_select="mmal" h264_mmal_hwaccel_deps="mmal" -h264_mmal_decoder_select="h264_decoder" -h264_mmal_encoder_deps="mmal" +h264_omx_encoder_deps="omx" h264_qsv_hwaccel_deps="libmfx" h264_vaapi_hwaccel_deps="vaapi" h264_vaapi_hwaccel_select="h264_decoder" @@ -2128,11 +2141,15 @@ mpeg2_d3d11va_hwaccel_deps="d3d11va" mpeg2_d3d11va_hwaccel_select="mpeg2video_decoder" mpeg2_dxva2_hwaccel_deps="dxva2" mpeg2_dxva2_hwaccel_select="mpeg2video_decoder" +mpeg2_mmal_decoder_deps="mmal" +mpeg2_mmal_decoder_select="mmal" +mpeg2_mmal_hwaccel_deps="mmal" mpeg2_qsv_hwaccel_deps="libmfx" mpeg2_vaapi_hwaccel_deps="vaapi" mpeg2_vaapi_hwaccel_select="mpeg2video_decoder" mpeg2_vdpau_hwaccel_deps="vdpau" mpeg2_vdpau_hwaccel_select="mpeg2video_decoder" +mpeg4_omx_encoder_deps="omx" mpeg4_vaapi_hwaccel_deps="vaapi" mpeg4_vaapi_hwaccel_select="mpeg4_decoder" mpeg4_vdpau_hwaccel_deps="vdpau" @@ -2141,6 +2158,9 @@ vc1_d3d11va_hwaccel_deps="d3d11va" vc1_d3d11va_hwaccel_select="vc1_decoder" vc1_dxva2_hwaccel_deps="dxva2" vc1_dxva2_hwaccel_select="vc1_decoder" +vc1_mmal_decoder_deps="mmal" +vc1_mmal_decoder_select="mmal" +vc1_mmal_hwaccel_deps="mmal" vc1_vaapi_hwaccel_deps="vaapi" vc1_vaapi_hwaccel_select="vc1_decoder" vc1_vdpau_hwaccel_deps="vdpau" @@ -2153,6 +2173,8 @@ wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" # hardware-accelerated codecs nvenc_deps_any="dlopen LoadLibrary" nvenc_extralibs='$ldl' +omx_deps="dlopen pthreads" +omx_extralibs='$ldl' qsvdec_select="qsv" qsvenc_select="qsv" vaapi_encode_deps="vaapi" @@ -2184,7 +2206,7 @@ nvenc_h264_encoder_deps="nvenc" nvenc_hevc_encoder_deps="nvenc" # parsers -h264_parser_select="h264_decoder" +h264_parser_select="golomb h264dsp" hevc_parser_select="golomb" mpegvideo_parser_select="mpegvideo" mpeg4video_parser_select="error_resilience h263dsp mpegvideo qpeldsp" @@ -2387,6 +2409,7 @@ interlace_filter_deps="gpl" ocv_filter_deps="libopencv" resample_filter_deps="avresample" scale_filter_deps="swscale" +scale_qsv_filter_deps="libmfx" scale_vaapi_filter_deps="vaapi VAProcPipelineParameterBuffer" # examples @@ -2444,6 +2467,7 @@ objformat="elf" pkg_config_default=pkg-config ranlib="ranlib" strip="strip" +version_script='--version-script' yasmexe="yasm" # machine @@ -2485,6 +2509,7 @@ SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' 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 @@ -3727,7 +3752,8 @@ case $target_os in 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 @@ -4055,7 +4081,6 @@ 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 nvenc die_license_disabled nonfree openssl die_license_disabled version3 libopencore_amrnb @@ -4615,6 +4640,13 @@ enabled mmal && { check_lib interface/mmal/mmal.h mmal_port_connect check_lib interface/mmal/mmal.h mmal_port_connect ; } check_lib interface/mmal/mmal.h mmal_port_connect ; } || die "ERROR: mmal not found"; } +enabled mmal && check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS" +enabled omx_rpi && enable omx +enabled omx && { check_header OMX_Core.h || + { ! enabled cross_compile && enabled omx_rpi && { + 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 && { add_cflags $openssl_cflags && add_extralibs $openssl_libs; }|| check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto || @@ -4637,10 +4669,9 @@ if enabled libdc1394; then 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 @@ -4740,8 +4771,7 @@ enabled vdpau && 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" @@ -4803,21 +4833,26 @@ enabled xmm_clobber_test && -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 < $TMPV + if test_ldflags -Wl,${version_script},$TMPV; then + append SHFLAGS '-Wl,${version_script},\$(SUBDIR)lib\$(NAME).ver' + check_cc < $TMPH + for c in $*; do + enabled $c && printf " &ff_%s,\n" $c >> $TMPH + done + echo " NULL };" >> $TMPH + cp_if_changed $TMPH $file +} + +print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters $BSF_LIST +print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST + # build pkg-config files lib_version(){