X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=27555764957f6a1aea3861f0d00b1c24eac32b0a;hb=dac51d2bbdb04445876dc33785c363a9597cbad2;hp=ee473b995ebf490e7085fbbfd4ab6eb31a0ff986;hpb=41e891e89ed7254293f1613177e73e9d2699bf0d;p=ffmpeg diff --git a/configure b/configure index ee473b995eb..27555764957 100755 --- a/configure +++ b/configure @@ -597,6 +597,13 @@ popvar(){ done } +request(){ + for var in $*; do + eval ${var}_requested=yes + eval $var= + done +} + enable(){ set_all yes $* } @@ -653,6 +660,11 @@ enable_deep_weak(){ done } +requested(){ + test "${1#!}" = "$1" && op='=' || op=!= + eval test "x\$${1#!}_requested" $op "xyes" +} + enabled(){ test "${1#!}" = "$1" && op='=' || op=!= eval test "x\$${1#!}" $op "xyes" @@ -724,9 +736,9 @@ do_check_deps(){ [ -n "$dep_ifa" ] && { enabled_all $dep_ifa && enable_weak $cfg; } [ -n "$dep_ifn" ] && { enabled_any $dep_ifn && enable_weak $cfg; } - enabled_all $dep_all || disable $cfg - enabled_any $dep_any || disable $cfg - disabled_any $dep_sel && disable $cfg + enabled_all $dep_all || { disable $cfg && requested $cfg && die "ERROR: $cfg requested, but not all dependencies are satisfied: $dep_all"; } + enabled_any $dep_any || { disable $cfg && requested $cfg && die "ERROR: $cfg requested, but not any dependency is satisfied: $dep_any"; } + disabled_any $dep_sel && { disable $cfg && requested $cfg && die "ERROR: $cfg requested, but some selected dependency is unsatisfied: $dep_sel"; } if enabled $cfg; then enable_deep $dep_sel @@ -1189,13 +1201,15 @@ check_cpp_condition(){ EOF } -test_cflags_cpp(){ - log test_cflags_cpp "$@" +test_cflags_cc(){ + log test_cflags_cc "$@" flags=$1 - condition=$2 - shift 2 + header=$2 + condition=$3 + shift 3 set -- $($cflags_filter "$flags") - check_cpp "$@" < #if !($condition) #error "unsatisfied condition: $condition" #endif @@ -1481,10 +1495,25 @@ EXAMPLE_LIST=" transcode_aac_example transcoding_example " +EXTERNAL_AUTODETECT_LIBRARY_LIST=" + bzlib + iconv + libxcb + libxcb_shm + libxcb_shape + libxcb_xfixes + lzma + schannel + sdl + sdl2 + securetransport + xlib + zlib +" EXTERNAL_LIBRARY_LIST=" + $EXTERNAL_AUTODETECT_LIBRARY_LIST avisynth - bzlib chromaprint crystalhd decklink @@ -1492,7 +1521,6 @@ EXTERNAL_LIBRARY_LIST=" gcrypt gmp gnutls - iconv jni ladspa libass @@ -1545,42 +1573,26 @@ EXTERNAL_LIBRARY_LIST=" libx264 libx265 libxavs - libxcb - libxcb_shm - libxcb_shape - libxcb_xfixes libxvid libzimg libzmq libzvbi - lzma mediacodec netcdf openal opencl opengl openssl - schannel - sdl - sdl2 - securetransport videotoolbox x11grab - xlib - zlib " - -HWACCEL_LIBRARY_LIST=" +HWACCEL_AUTODETECT_LIBRARY_LIST=" audiotoolbox cuda cuvid d3d11va dxva2 - libmfx - libnpp - mmal nvenc - omx vaapi vda vdpau @@ -1588,6 +1600,14 @@ HWACCEL_LIBRARY_LIST=" xvmc " +HWACCEL_LIBRARY_LIST=" + $HWACCEL_AUTODETECT_LIBRARY_LIST + libmfx + libnpp + mmal + omx +" + DOCUMENT_LIST=" doc htmlpages @@ -1684,6 +1704,12 @@ ATOMICS_LIST=" atomics_win32 " +AUTODETECT_LIBS=" + $EXTERNAL_AUTODETECT_LIBRARY_LIST + $HWACCEL_AUTODETECT_LIBRARY_LIST + $THREADS_LIST +" + ARCH_LIST=" aarch64 alpha @@ -1967,6 +1993,7 @@ SYSTEM_FUNCS=" TOOLCHAIN_FEATURES=" as_dn_directive + as_fpu_directive as_func as_object_arch asm_mod_q @@ -2089,6 +2116,7 @@ CONFIG_EXTRA=" libx262 llauddsp llviddsp + llvidencdsp lpc lzf me_cmp @@ -2340,7 +2368,7 @@ amv_decoder_select="sp5x_decoder exif" amv_encoder_select="aandcttables jpegtables mpegvideoenc" ape_decoder_select="bswapdsp llauddsp" apng_decoder_select="zlib" -apng_encoder_select="huffyuvencdsp zlib" +apng_encoder_select="llvidencdsp zlib" asv1_decoder_select="blockdsp bswapdsp idctdsp" asv1_encoder_select="bswapdsp fdctdsp pixblockdsp" asv2_decoder_select="blockdsp bswapdsp idctdsp" @@ -2404,7 +2432,7 @@ hap_encoder_deps="libsnappy" hap_encoder_select="texturedspenc" hevc_decoder_select="bswapdsp cabac golomb videodsp" huffyuv_decoder_select="bswapdsp huffyuvdsp llviddsp" -huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp llviddsp" +huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp llvidencdsp" iac_decoder_select="imc_decoder" imc_decoder_select="bswapdsp fft mdct sinewin" indeo3_decoder_select="hpeldsp" @@ -2414,10 +2442,10 @@ interplay_video_decoder_select="hpeldsp" jpegls_decoder_select="golomb mjpeg_decoder" jpegls_encoder_select="golomb" jv_decoder_select="blockdsp" -lagarith_decoder_select="huffyuvdsp" -ljpeg_encoder_select="aandcttables idctdsp jpegtables" +lagarith_decoder_select="llviddsp" +ljpeg_encoder_select="aandcttables idctdsp jpegtables mpegvideoenc" loco_decoder_select="golomb" -magicyuv_decoder_select="huffyuvdsp" +magicyuv_decoder_select="llviddsp" mdec_decoder_select="blockdsp idctdsp mpegvideo" metasound_decoder_select="lsp mdct sinewin" mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp" @@ -2465,7 +2493,7 @@ on2avc_decoder_select="mdct" opus_decoder_deps="swresample" opus_decoder_select="imdct15" png_decoder_select="zlib" -png_encoder_select="huffyuvencdsp zlib" +png_encoder_select="llvidencdsp zlib" prores_decoder_select="blockdsp idctdsp" prores_encoder_select="fdctdsp" qcelp_decoder_select="lsp" @@ -2507,9 +2535,9 @@ truespeech_decoder_select="bswapdsp" tscc_decoder_select="zlib" twinvq_decoder_select="mdct lsp sinewin" txd_decoder_select="texturedsp" -utvideo_decoder_select="bswapdsp" -utvideo_encoder_select="bswapdsp huffman huffyuvencdsp" -vble_decoder_select="huffyuvdsp" +utvideo_decoder_select="bswapdsp llviddsp" +utvideo_encoder_select="bswapdsp huffman llvidencdsp" +vble_decoder_select="llviddsp" vc1_decoder_select="blockdsp h263_decoder h264qpel intrax8 mpegvideo vc1dsp" vc1_qsv_decoder_deps="libmfx" vc1_qsv_decoder_select="qsvdec vc1_qsv_hwaccel" @@ -2689,7 +2717,7 @@ vp9_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_VP9" vp9_dxva2_hwaccel_select="vp9_decoder" vp9_mediacodec_decoder_deps="mediacodec" vp9_mediacodec_hwaccel_deps="mediacodec" -vp9_vaapi_hwaccel_deps="vaapi VADecPictureParameterBufferVP9" +vp9_vaapi_hwaccel_deps="vaapi VADecPictureParameterBufferVP9_bit_depth" vp9_vaapi_hwaccel_select="vp9_decoder" wmv3_crystalhd_decoder_select="crystalhd" wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel" @@ -2859,6 +2887,7 @@ vt_bt2020_deps="kCVImageBufferColorPrimaries_ITU_R_2020" # demuxers / muxers ac3_demuxer_select="ac3_parser" +aiff_muxer_select="iso_media" asf_demuxer_select="riffdec" asf_o_demuxer_select="riffdec" asf_muxer_select="riffenc" @@ -2866,6 +2895,7 @@ asf_stream_muxer_select="asf_muxer" avi_demuxer_select="iso_media riffdec exif" avi_muxer_select="riffenc" caf_demuxer_select="iso_media riffdec" +caf_muxer_select="iso_media" dash_muxer_select="mp4_muxer" dirac_demuxer_select="dirac_parser" dts_demuxer_select="dca_parser" @@ -2908,6 +2938,7 @@ ogv_muxer_select="ogg_muxer" opus_muxer_select="ogg_muxer" psp_muxer_select="mov_muxer" rtp_demuxer_select="sdp_demuxer" +rtp_muxer_select="golomb" rtpdec_select="asf_demuxer jpegtables mov_demuxer mpegts_demuxer rm_demuxer rtp_protocol srtp" rtsp_demuxer_select="http_protocol rtpdec" rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol rtpenc_chain" @@ -3237,15 +3268,6 @@ enable valgrind_backtrace sws_max_filter_size_default=256 set_default sws_max_filter_size -# Enable platform codecs by default. -enable audiotoolbox - -# Enable hwaccels by default. -enable d3d11va dxva2 vaapi vda vdpau videotoolbox_hwaccel xvmc -enable xlib - -enable cuda cuvid nvenc vda_framework videotoolbox videotoolbox_encoder - # build settings SHFLAGS='-shared -Wl,-soname,$$(@F)' LIBPREF="lib" @@ -3491,6 +3513,20 @@ for e in $env; do eval "export $e" done +# Mark specifically enabled, but normally autodetected libraries as requested. +for lib in $AUTODETECT_LIBS; do + enabled $lib && request $lib +done + +# Enable platform codecs by default. +enable_weak audiotoolbox + +# Enable hwaccels by default. +enable_weak d3d11va dxva2 vaapi vda vdpau videotoolbox_hwaccel xvmc +enable_weak xlib + +enable_weak cuda cuvid nvenc vda_framework videotoolbox videotoolbox_encoder + disabled logging && logfile=/dev/null # Disable all the library-specific components if the library itself @@ -3523,7 +3559,7 @@ case "$toolchain" in ;; *-tsan) cc_default="${toolchain%-tsan}" - add_cflags -fsanitize=thread -pie + add_cflags -fsanitize=thread -fPIE add_ldflags -fsanitize=thread -pie case "$toolchain" in gcc-tsan) @@ -4595,7 +4631,7 @@ add_cxxflags -std=c++98 # some compilers silently accept -std=c11, so we also need to check that the # version macro is defined properly -if test_cflags_cpp -std=c11 "__STDC_VERSION__ >= 201112L"; then +if test_cflags_cc -std=c11 ctype.h "__STDC_VERSION__ >= 201112L"; then add_cflags -std=c11 else check_cflags -std=c99 @@ -4768,7 +4804,7 @@ case $target_os in SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' dlltool="${cross_prefix}dlltool" if check_cmd lib.exe -list; then - SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); lib.exe /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' + SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); lib.exe -nologo -machine:$(LIBTARGET) -def:$$(@:$(SLIBSUF)=.def) -out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)' if enabled x86_64; then LIBTARGET=x64 fi @@ -5276,6 +5312,9 @@ EOF check_as <= 190024218" || + check_cflags -d2SSAOptimizer- + # enable utf-8 source processing on VS2015 U2 and newer + check_cpp_condition windows.h "_MSC_FULL_VER >= 190023918" && + add_cflags -utf-8 fi for pfx in "" host_; do @@ -6397,6 +6440,11 @@ if disabled stdatomic_h; then fi fi +# Check if requested libraries were found. +for lib in $AUTODETECT_LIBS; do + requested $lib && ! enabled $lib && die "ERROR: $lib requested but not found"; +done + enabled zlib && add_cppflags -DZLIB_CONST # conditional library dependencies, in linking order @@ -6730,7 +6778,7 @@ cat > $TMPH <