X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=1752a35c4ee067aec5a9066e83d53e2ac4290233;hb=f929081f2e64d979fd8c58b17705e9554f99baf9;hp=89b56680c580f6329fb304c8ba55faf8a0e1708a;hpb=cfcb9f5e3628fc8e768836cd4b9b377c24221cf9;p=ffmpeg diff --git a/configure b/configure index 89b56680c58..1752a35c4ee 100755 --- a/configure +++ b/configure @@ -222,6 +222,7 @@ External library support: --enable-libgsm enable GSM de/encoding via libgsm [no] --enable-libiec61883 enable iec61883 via libiec61883 [no] --enable-libilbc enable iLBC de/encoding via libilbc [no] + --enable-libkvazaar enable HEVC encoding via libkvazaar [no] --enable-libmfx enable HW acceleration through libmfx --enable-libmodplug enable ModPlug via libmodplug [no] --enable-libmp3lame enable MP3 encoding via libmp3lame [no] @@ -322,6 +323,7 @@ Toolchain options: --extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS] --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS] --extra-ldexeflags=ELDFLAGS add ELDFLAGS to LDEXEFLAGS [$LDEXEFLAGS] + --extra-ldlibflags=ELDFLAGS add ELDFLAGS to LDLIBFLAGS [$LDLIBFLAGS] --extra-libs=ELIBS add ELIBS [$ELIBS] --extra-version=STRING version string suffix [] --optflags=OPTFLAGS override optimization-related compiler flags @@ -374,7 +376,7 @@ Optimization options (experts only): --disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations --disable-msa disable MSA optimizations --disable-mipsfpu disable floating point MIPS optimizations - --disable-loongson3 disable Loongson-3 SIMD optimizations + --disable-mmi disable Loongson SIMD optimizations --disable-fast-unaligned consider unaligned accesses slow Developer options (useful when working on FFmpeg itself): @@ -476,7 +478,7 @@ sh_quote(){ } cleanws(){ - echo "$@" | sed 's/^ *//;s/ */ /g;s/ *$//;s/\\r//g' + echo "$@" | sed 's/^ *//;s/[[:space:]][[:space:]]*/ /g;s/ *$//' } filter(){ @@ -792,6 +794,10 @@ add_ldexeflags(){ append LDEXEFLAGS $($ldflags_filter "$@") } +add_ldlibflags(){ + append LDLIBFLAGS $($ldflags_filter "$@") +} + add_stripflags(){ append ASMSTRIPFLAGS "$@" } @@ -1381,6 +1387,7 @@ EXTERNAL_LIBRARY_LIST=" libgsm libiec61883 libilbc + libkvazaar libmfx libmodplug libmp3lame @@ -1591,7 +1598,9 @@ ARCH_EXT_LIST_MIPS=" " ARCH_EXT_LIST_LOONGSON=" + loongson2 loongson3 + mmi " ARCH_EXT_LIST_X86_SIMD=" @@ -1787,6 +1796,7 @@ SYSTEM_FUNCS=" pthread_cancel sched_getaffinity SetConsoleTextAttribute + SetConsoleCtrlHandler setmode setrlimit Sleep @@ -1826,6 +1836,7 @@ TYPES_LIST=" CONDITION_VARIABLE_Ptr socklen_t struct_addrinfo + struct_dcadec_exss_info_matrix_encoding struct_group_source_req struct_ip_mreq_source struct_ipv6_mreq @@ -1889,8 +1900,10 @@ CONFIG_EXTRA=" faandct faanidct fdctdsp + flacdsp fmtconvert frame_thread_encoder + g722dsp gcrypt gmp golomb @@ -1908,7 +1921,9 @@ CONFIG_EXTRA=" iirfilter imdct15 intrax8 + ividsp jpegtables + libx262 lgplv3 llauddsp llviddsp @@ -1919,6 +1934,7 @@ CONFIG_EXTRA=" mpegaudiodsp mpegvideo mpegvideoenc + mss34dsp pixblockdsp qpeldsp qsv @@ -1929,6 +1945,7 @@ CONFIG_EXTRA=" riffenc rtpdec rtpenc_chain + rv34dsp sinewin snappy startcode @@ -1937,7 +1954,10 @@ CONFIG_EXTRA=" tpeldsp videodsp vp3dsp + vp56dsp + vp8dsp wma_freqs + wmv2dsp " CMDLINE_SELECT=" @@ -2045,7 +2065,7 @@ mips32r2_deps="mips" mips32r5_deps="mips" mips64r6_deps="mips" msa_deps="mips" -loongson3_deps="mips" +mmi_deps="mips" altivec_deps="ppc" dcbzl_deps="ppc" @@ -2124,12 +2144,15 @@ qsvenc_select="qsv" # decoders / encoders aac_decoder_select="imdct15 mdct sinewin" +aac_fixed_decoder_select="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 fmtconvert mdct" ac3_fixed_decoder_select="ac3_parser ac3dsp bswapdsp mdct" ac3_encoder_select="ac3dsp audiodsp mdct me_cmp" ac3_fixed_encoder_select="ac3dsp audiodsp mdct me_cmp" +adpcm_g722_decoder_select="g722dsp" +adpcm_g722_encoder_select="g722dsp" aic_decoder_select="golomb idctdsp" alac_encoder_select="lpc" als_decoder_select="bswapdsp" @@ -2176,8 +2199,8 @@ ffv1_encoder_select="rangecoder" ffvhuff_decoder_select="huffyuv_decoder" ffvhuff_encoder_select="huffyuv_encoder" fic_decoder_select="golomb" -flac_decoder_select="golomb" -flac_encoder_select="bswapdsp golomb lpc" +flac_decoder_select="flacdsp golomb" +flac_encoder_select="bswapdsp flacdsp golomb lpc" flashsv_decoder_select="zlib" flashsv_encoder_select="zlib" flashsv2_encoder_select="zlib" @@ -2205,11 +2228,15 @@ hap_decoder_select="snappy texturedsp" hap_encoder_deps="libsnappy" hap_encoder_select="texturedspenc" hevc_decoder_select="bswapdsp cabac golomb videodsp" +hevc_qsv_encoder_deps="libmfx" +hevc_qsv_encoder_select="qsvenc" huffyuv_decoder_select="bswapdsp huffyuvdsp llviddsp" huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp llviddsp" iac_decoder_select="imc_decoder" imc_decoder_select="bswapdsp fft mdct sinewin" indeo3_decoder_select="hpeldsp" +indeo4_decoder_select="ividsp" +indeo5_decoder_select="ividsp" interplay_video_decoder_select="hpeldsp" jpegls_decoder_select="golomb mjpeg_decoder" jpegls_encoder_select="golomb" @@ -2244,14 +2271,18 @@ mpeg1video_decoder_select="error_resilience mpeg_er mpegvideo" mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp" mpeg2video_decoder_select="error_resilience mpeg_er mpegvideo" mpeg2video_encoder_select="aandcttables mpegvideoenc h263dsp" +mpeg2_qsv_encoder_deps="libmfx" +mpeg2_qsv_encoder_select="qsvenc" mpeg4_decoder_select="h263_decoder mpeg4video_parser" mpeg4_encoder_select="h263_encoder" +msa1_decoder_select="mss34dsp" msmpeg4v1_decoder_select="h263_decoder" msmpeg4v2_decoder_select="h263_decoder" msmpeg4v2_encoder_select="h263_encoder" msmpeg4v3_decoder_select="h263_decoder" msmpeg4v3_encoder_select="h263_encoder" mss2_decoder_select="error_resilience mpeg_er qpeldsp vc1_decoder" +mts2_decoder_select="mss34dsp" mxpeg_decoder_select="mjpeg_decoder" nellymoser_decoder_select="mdct sinewin" nellymoser_encoder_select="audio_frame_queue mdct sinewin" @@ -2274,8 +2305,8 @@ rv10_decoder_select="error_resilience h263_decoder h263dsp mpeg_er" rv10_encoder_select="h263_encoder" rv20_decoder_select="error_resilience h263_decoder h263dsp mpeg_er" rv20_encoder_select="h263_encoder" -rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo videodsp" -rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo videodsp" +rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo rv34dsp videodsp" +rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo rv34dsp videodsp" shorten_decoder_select="golomb" sipr_decoder_select="lsp" snow_decoder_select="dwt h264qpel hpeldsp me_cmp rangecoder videodsp" @@ -2308,12 +2339,12 @@ vc1image_decoder_select="vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="mdct" vp3_decoder_select="hpeldsp vp3dsp videodsp" -vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp" -vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp" +vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp vp56dsp" +vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp vp56dsp" vp6a_decoder_select="vp6_decoder" vp6f_decoder_select="vp6_decoder" -vp7_decoder_select="h264pred videodsp" -vp8_decoder_select="h264pred videodsp" +vp7_decoder_select="h264pred videodsp vp8dsp" +vp8_decoder_select="h264pred videodsp vp8dsp" vp9_decoder_select="videodsp vp9_parser" webp_decoder_select="vp8_decoder" wmalossless_decoder_select="llauddsp" @@ -2325,8 +2356,8 @@ wmav2_encoder_select="mdct sinewin wma_freqs" wmavoice_decoder_select="lsp rdft dct mdct sinewin" wmv1_decoder_select="h263_decoder" wmv1_encoder_select="h263_encoder" -wmv2_decoder_select="blockdsp h263_decoder idctdsp intrax8 videodsp" -wmv2_encoder_select="h263_encoder" +wmv2_decoder_select="blockdsp h263_decoder idctdsp intrax8 videodsp wmv2dsp" +wmv2_encoder_select="h263_encoder wmv2dsp" wmv3_decoder_select="vc1_decoder" wmv3image_decoder_select="wmv3_decoder" zerocodec_decoder_select="zlib" @@ -2426,7 +2457,7 @@ wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" # parsers h264_parser_select="h264_decoder" -hevc_parser_select="hevc_decoder" +hevc_parser_select="golomb" mpegvideo_parser_select="mpegvideo" mpeg4video_parser_select="error_resilience h263dsp mpeg_er mpegvideo qpeldsp" vc1_parser_select="mpegvideo startcode vc1_decoder" @@ -2450,6 +2481,7 @@ libgsm_ms_decoder_deps="libgsm" libgsm_ms_encoder_deps="libgsm" libilbc_decoder_deps="libilbc" libilbc_encoder_deps="libilbc" +libkvazaar_encoder_deps="libkvazaar" libmodplug_demuxer_deps="libmodplug" libmp3lame_encoder_deps="libmp3lame" libmp3lame_encoder_select="audio_frame_queue" @@ -2487,6 +2519,7 @@ libvpx_vp9_encoder_deps="libvpx" libwavpack_encoder_deps="libwavpack" libwebp_encoder_deps="libwebp" libwebp_anim_encoder_deps="libwebp" +libx262_encoder_deps="libx262" libx264_encoder_deps="libx264" libx264rgb_encoder_deps="libx264" libx264rgb_encoder_select="libx264_encoder" @@ -2621,6 +2654,7 @@ x11grab_indev_deps="x11grab" x11grab_xcb_indev_deps="libxcb" # protocols +async_protocol_deps="pthreads" bluray_protocol_deps="libbluray" ffrtmpcrypt_protocol_deps="!librtmp_protocol" ffrtmpcrypt_protocol_deps_any="gcrypt gmp openssl" @@ -3008,6 +3042,9 @@ for opt do --extra-ldexeflags=*) add_ldexeflags $optval ;; + --extra-ldlibflags=*) + add_ldlibflags $optval + ;; --extra-libs=*) add_extralibs $optval ;; @@ -3963,7 +4000,7 @@ elif enabled mips; then check_cflags "-mtune=i6400 -mabi=64" check_ldflags "-mabi=64" ;; - loongson3*) + loongson*) disable mipsfpu disable mips32r2 disable mips32r5 @@ -3971,14 +4008,24 @@ elif enabled mips; then disable mipsdspr1 disable mipsdspr2 disable msa - enable local_aligned_8 local_aligned_16 + enable local_aligned_8 local_aligned_16 local_aligned_32 enable simd_align_16 enable fast_64bit enable fast_clz enable fast_cmov enable fast_unaligned disable aligned_stack - cpuflags="-march=loongson3a -mhard-float" + case $cpu in + loongson3*) + cpuflags="-march=loongson3a -mhard-float -fno-expensive-optimizations" + ;; + loongson2e) + cpuflags="-march=loongson2e -mhard-float -fno-expensive-optimizations" + ;; + loongson2f) + cpuflags="-march=loongson2f -mhard-float -fno-expensive-optimizations" + ;; + esac ;; generic) disable mips32r5 @@ -4736,11 +4783,15 @@ EOF elif enabled mips; then + enabled loongson2 && check_inline_asm loongson2 '"dmult.g $8, $9, $10"' + enabled loongson3 && check_inline_asm loongson3 '"gsldxc1 $f0, 0($2, $3)"' + enabled mmi && check_inline_asm mmi '"punpcklhw $f0, $f0, $f0"' + # Enable minimum ISA based on selected options if enabled mips64 && (enabled mipsdspr1 || enabled mipsdspr2); then add_cflags "-mips64r2" add_asflags "-mips64r2" - elif enabled mips64 && enabled mipsfpu && disabled loongson3; then + elif enabled mips64 && enabled mipsfpu && disabled loongson2 && disabled loongson3; then add_cflags "-mips64" add_asflags "-mips64" elif enabled mipsdspr1 || enabled mipsdspr2; then @@ -4765,7 +4816,6 @@ elif enabled mips; then check_inline_asm mipsfpu '"madd.d $f0, $f2, $f4, $f6"' enabled msa && check_cflags "-mmsa" && check_ldflags "-mmsa" && check_inline_asm msa '"addvi.b $w0, $w1, 1"' - enabled loongson3 && check_inline_asm loongson3 '"gsldxc1 $f0, 0($2, $3)"' enabled mips32r5 && add_asflags "-mips32r5 -mfp64" enabled mips64r6 && add_asflags "-mips64r6 -mfp64" @@ -4990,6 +5040,7 @@ check_func_headers windows.h GetSystemTimeAsFileTime check_func_headers windows.h MapViewOfFile check_func_headers windows.h PeekNamedPipe check_func_headers windows.h SetConsoleTextAttribute +check_func_headers windows.h SetConsoleCtrlHandler check_func_headers windows.h Sleep check_func_headers windows.h VirtualAlloc check_struct windows.h "CONDITION_VARIABLE" Ptr @@ -5104,7 +5155,8 @@ enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 || die "ERROR: libcelt must be installed and version must be >= 0.11.0."; } enabled libcaca && require_pkg_config caca caca.h caca_create_canvas -enabled libdcadec && require_pkg_config dcadec libdcadec/dca_context.h dcadec_context_create +enabled libdcadec && require_pkg_config dcadec libdcadec/dca_context.h dcadec_context_create && + check_struct libdcadec/dca_context.h "struct dcadec_exss_info" matrix_encoding enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac enabled libfdk_aac && { use_pkg_config fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen || { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac && @@ -5120,6 +5172,7 @@ enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do check_lib "${gsm_hdr}" gsm_create -lgsm && break; done || die "ERROR: libgsm not found"; } enabled libilbc && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc +enabled libkvazaar && require2 libkvazaar kvazaar.h kvz_api_get -lkvazaar enabled libmfx && require_pkg_config libmfx "mfx/mfxvideo.h" MFXInit enabled libmodplug && require_pkg_config libmodplug libmodplug/modplug.h ModPlug_Load enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame @@ -5192,7 +5245,9 @@ enabled libx264 && { use_pkg_config x264 "stdint.h x264.h" x264_encode { require libx264 x264.h x264_encoder_encode -lx264 && warn "using libx264 without pkg-config"; } } && { check_cpp_condition x264.h "X264_BUILD >= 118" || - die "ERROR: libx264 must be installed and version must be >= 0.118."; } + die "ERROR: libx264 must be installed and version must be >= 0.118."; } && + { check_cpp_condition x264.h "X264_MPEG2" && + enable libx262; } enabled libx265 && require_pkg_config x265 x265.h x265_api_get && { check_cpp_condition x265.h "X265_BUILD >= 57" || die "ERROR: libx265 version must be >= 57."; } @@ -5430,6 +5485,7 @@ check_disable_warning -Wno-pointer-sign check_ldflags -Wl,--warn-common check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample enabled rpath && add_ldexeflags -Wl,-rpath,$libdir +enabled rpath && add_ldlibflags -Wl,-rpath,$libdir test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic # add some strip flags @@ -5777,7 +5833,7 @@ if enabled mips; then echo "MIPS DSP R1 enabled ${mipsdspr1-no}" echo "MIPS DSP R2 enabled ${mipsdspr2-no}" echo "MIPS MSA enabled ${msa-no}" - echo "LOONGSON3 enabled ${loongson3-no}" + echo "LOONGSON MMI enabled ${mmi-no}" fi if enabled ppc; then echo "AltiVec enabled ${altivec-no}" @@ -5898,6 +5954,7 @@ DEPWINDRES=$dep_cc DOXYGEN=$doxygen LDFLAGS=$LDFLAGS LDEXEFLAGS=$LDEXEFLAGS +LDLIBFLAGS=$LDLIBFLAGS SHFLAGS=$(echo $($ldflags_filter $SHFLAGS)) ASMSTRIPFLAGS=$ASMSTRIPFLAGS YASMFLAGS=$YASMFLAGS