X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=configure;h=e40171154464b1fad1383a143c1464bf926ab474;hb=9e0b29911f1f167381a7dbdfca68bf417b8c767b;hp=4fac00383f952c40c445aa565f1ea2299f713b47;hpb=8ef33497a6a3ed05d2f931809c074ef3d1878834;p=ffmpeg diff --git a/configure b/configure index 4fac00383f9..e4017115446 100755 --- a/configure +++ b/configure @@ -108,7 +108,7 @@ Program options: --disable-avconv disable avconv build --disable-avplay disable avplay build --disable-avprobe disable avprobe build - --disable-avserver disable avserver build + --disable-avserver deprecated, does nothing Component options: --disable-doc do not build documentation @@ -178,6 +178,7 @@ External library support: --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] @@ -191,12 +192,13 @@ External library support: --enable-libopencore-amrwb enable AMR-WB decoding via libopencore-amrwb [no] --enable-libopencv enable video filtering via libopencv [no] --enable-libopenjpeg enable JPEG 2000 de/encoding via OpenJPEG [no] - --enable-libopus enable Opus decoding via libopus [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-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] @@ -225,14 +227,13 @@ Toolchain options: --target-path=DIR path to view of build directory on target --target-samples=DIR path to samples directory on target --toolchain=NAME set tool defaults according to NAME - --pkg-config=PKGCONFIG use pkg-config tool PKGCONFIG [$pkg_config_default] --nm=NM use nm tool --ar=AR use archive tool AR [$ar_default] --as=AS use assembler AS [$as_default] --cc=CC use C compiler CC [$cc_default] --dep-cc=DEPCC use dependency generator DEPCC [$cc_default] --ld=LD use linker LD - --pkg-config=PKGCONF use pkg-config PKGCONF [$pkg_config_default] + --pkg-config=PKGCONFIG use pkg-config tool PKGCONFIG [$pkg_config_default] --pkg-config-flags=FLAGS pass additional flags to pkgconf [] --host-cc=HOSTCC use host C compiler HOSTCC --host-cflags=HCFLAGS use HCFLAGS when compiling for host @@ -262,7 +263,7 @@ Advanced options (experts only): --enable-sram allow use of on-chip SRAM Optimization options (experts only): - --disable-asm disable all assembler optimizations + --disable-asm disable all assembly optimizations --disable-altivec disable AltiVec optimizations --disable-amd3dnow disable 3DNow! optimizations --disable-amd3dnowext disable 3DNow! extended optimizations @@ -284,8 +285,8 @@ Optimization options (experts only): --disable-armv6t2 disable armv6t2 optimizations --disable-vfp disable VFP optimizations --disable-neon disable NEON optimizations - --disable-inline-asm disable use of inline assembler - --disable-yasm disable use of yasm assembler + --disable-inline-asm disable use of inline assembly + --disable-yasm disable use of nasm/yasm assembly Developer options (useful when working on Libav itself): --disable-debug disable debugging symbols @@ -653,6 +654,15 @@ prepend(){ eval "$var=\"$* \$$var\"" } +unique(){ + var=$1 + uniq_list="" + for tok in $(eval echo \$$var); do + uniq_list="$(filter_out $tok $uniq_list) $tok" + done + eval "$var=\"${uniq_list}\"" +} + add_cppflags(){ append CPPFLAGS "$@" } @@ -1123,10 +1133,12 @@ EXTERNAL_LIBRARY_LIST=" bzlib frei0r gnutls + libbs2b libcdio libdc1394 libfaac libfdk_aac + libfontconfig libfreetype libgsm libilbc @@ -1141,6 +1153,7 @@ EXTERNAL_LIBRARY_LIST=" libschroedinger libspeex libtheora + libtwolame libvo_aacenc libvo_amrwbenc libvorbis @@ -1195,7 +1208,6 @@ PROGRAM_LIST=" avconv avplay avprobe - avserver " SUBSYSTEM_LIST=" @@ -1271,6 +1283,7 @@ ARCH_EXT_LIST_ARM=" armv5te armv6 armv6t2 + armv8 neon vfp vfpv3 @@ -1410,6 +1423,7 @@ SYSTEM_FUNCS=" aligned_malloc closesocket CommandLineToArgvW + CoTaskMemFree CryptGenRandom dlopen fcntl @@ -1451,6 +1465,8 @@ SYSTEM_FUNCS=" " TOOLCHAIN_FEATURES=" + as_dn_directive + as_func asm_mod_q attribute_may_alias attribute_packed @@ -1498,6 +1514,7 @@ HAVE_LIST=" $TYPES_LIST atomics_native dos_paths + dxva2_lib libc_msvcrt libdc1394_1 libdc1394_2 @@ -1512,8 +1529,12 @@ CONFIG_EXTRA=" aandcttables ac3dsp audio_frame_queue + audiodsp + blockdsp + bswapdsp cabac - dsputil + dvprofile + fdctdsp gcrypt golomb gplv3 @@ -1524,14 +1545,21 @@ CONFIG_EXTRA=" h264qpel hpeldsp huffman + huffyuvdsp + huffyuvencdsp + idctdsp intrax8 lgplv3 lpc + me_cmp + mpeg_er mpegaudio mpegaudiodsp mpegvideo mpegvideoenc nettle + pixblockdsp + qpeldsp rangecoder riffdec riffenc @@ -1615,6 +1643,7 @@ CMDLINE_APPEND=" armv5te_deps="arm" armv6_deps="arm" armv6t2_deps="arm" +armv8_deps="aarch64" neon_deps_any="aarch64 arm" vfp_deps_any="aarch64 arm" vfpv3_deps="vfp" @@ -1678,100 +1707,104 @@ threads_if_any="$THREADS_LIST" # subsystems dct_select="rdft" -error_resilience_select="dsputil" +error_resilience_select="me_cmp" +intrax8_select="error_resilience" mdct_select="fft" rdft_select="fft" +me_cmp_select="fdctdsp idctdsp pixblockdsp" +mpeg_er_select="error_resilience" mpegaudio_select="mpegaudiodsp" mpegaudiodsp_select="dct" -mpegvideo_select="dsputil hpeldsp videodsp" -mpegvideoenc_select="dsputil mpegvideo" +mpegvideo_select="blockdsp hpeldsp idctdsp me_cmp videodsp" +mpegvideoenc_select="me_cmp mpegvideo pixblockdsp qpeldsp" # decoders / encoders aac_decoder_select="mdct sinewin" aac_encoder_select="audio_frame_queue mdct sinewin" aac_latm_decoder_select="aac_decoder aac_latm_parser" -ac3_decoder_select="mdct ac3dsp ac3_parser dsputil" -ac3_encoder_select="mdct ac3dsp dsputil" -ac3_fixed_encoder_select="mdct ac3dsp dsputil" -aic_decoder_select="dsputil golomb" +ac3_decoder_select="ac3_parser ac3dsp bswapdsp mdct" +ac3_encoder_select="ac3dsp audiodsp mdct me_cmp" +ac3_fixed_encoder_select="ac3dsp audiodsp mdct me_cmp" +aic_decoder_select="golomb idctdsp" alac_encoder_select="lpc" -als_decoder_select="dsputil" +als_decoder_select="bswapdsp" amrnb_decoder_select="lsp" amrwb_decoder_select="lsp" amv_decoder_select="sp5x_decoder" -ape_decoder_select="dsputil" -asv1_decoder_select="dsputil" -asv1_encoder_select="dsputil" -asv2_decoder_select="dsputil" -asv2_encoder_select="dsputil" +ape_decoder_select="bswapdsp" +asv1_decoder_select="blockdsp bswapdsp idctdsp" +asv1_encoder_select="bswapdsp fdctdsp pixblockdsp" +asv2_decoder_select="blockdsp bswapdsp idctdsp" +asv2_encoder_select="bswapdsp fdctdsp pixblockdsp" atrac1_decoder_select="mdct sinewin" atrac3_decoder_select="mdct" atrac3p_decoder_select="mdct sinewin" -bink_decoder_select="dsputil hpeldsp" +bink_decoder_select="blockdsp hpeldsp" binkaudio_dct_decoder_select="mdct rdft dct sinewin" binkaudio_rdft_decoder_select="mdct rdft sinewin" -cavs_decoder_select="dsputil golomb h264chroma videodsp" -cllc_decoder_select="dsputil" +cavs_decoder_select="blockdsp golomb h264chroma idctdsp qpeldsp videodsp" +cllc_decoder_select="bswapdsp" comfortnoise_encoder_select="lpc" -cook_decoder_select="dsputil mdct sinewin" +cook_decoder_select="audiodsp mdct sinewin" cscd_decoder_select="lzo" cscd_decoder_suggest="zlib" dca_decoder_select="mdct" -dnxhd_decoder_select="dsputil" -dnxhd_encoder_select="aandcttables dsputil mpegvideoenc" -dvvideo_decoder_select="dsputil" -dvvideo_encoder_select="dsputil" +dnxhd_decoder_select="blockdsp idctdsp" +dnxhd_encoder_select="aandcttables blockdsp fdctdsp idctdsp mpegvideoenc pixblockdsp" +dvvideo_decoder_select="dvprofile idctdsp" +dvvideo_encoder_select="dvprofile fdctdsp me_cmp pixblockdsp" dxa_decoder_deps="zlib" eac3_decoder_select="ac3_decoder" eac3_encoder_select="ac3_encoder" -eamad_decoder_select="aandcttables dsputil mpegvideo" -eatgq_decoder_select="aandcttables dsputil" -eatqi_decoder_select="aandcttables dsputil error_resilience mpegvideo" +eamad_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpegvideo" +eatgq_decoder_select="aandcttables idctdsp" +eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpeg1video_decoder" +exr_decoder_deps="zlib" ffv1_decoder_select="golomb rangecoder" ffv1_encoder_select="rangecoder" ffvhuff_decoder_select="huffyuv_decoder" ffvhuff_encoder_select="huffyuv_encoder" -fic_decoder_select="dsputil golomb" +fic_decoder_select="golomb" flac_decoder_select="golomb" -flac_encoder_select="dsputil golomb lpc" +flac_encoder_select="bswapdsp golomb lpc" flashsv_decoder_deps="zlib" flashsv_encoder_deps="zlib" flashsv2_decoder_deps="zlib" flv_decoder_select="h263_decoder" flv_encoder_select="h263_encoder" -fourxm_decoder_select="dsputil" -fraps_decoder_select="dsputil huffman" +fourxm_decoder_select="blockdsp bswapdsp" +fraps_decoder_select="bswapdsp huffman" g2m_decoder_deps="zlib" -g2m_decoder_select="dsputil" -h261_decoder_select="error_resilience mpegvideo" +g2m_decoder_select="blockdsp idctdsp" +h261_decoder_select="mpeg_er mpegvideo" h261_encoder_select="aandcttables mpegvideoenc" -h263_decoder_select="error_resilience h263_parser h263dsp mpegvideo" +h263_decoder_select="error_resilience h263_parser h263dsp mpeg_er mpegvideo qpeldsp" h263_encoder_select="aandcttables h263dsp mpegvideoenc" h263i_decoder_select="h263_decoder" h263p_encoder_select="h263_encoder" h264_decoder_select="cabac golomb h264chroma h264dsp h264pred h264qpel videodsp" h264_decoder_suggest="error_resilience" -hevc_decoder_select="cabac dsputil golomb videodsp" -huffyuv_decoder_select="dsputil" -huffyuv_encoder_select="dsputil huffman" +hevc_decoder_select="bswapdsp cabac golomb videodsp" +huffyuv_decoder_select="bswapdsp huffyuvdsp" +huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp" iac_decoder_select="imc_decoder" -imc_decoder_select="dsputil fft mdct sinewin" +imc_decoder_select="bswapdsp fft mdct sinewin" indeo3_decoder_select="hpeldsp" interplay_video_decoder_select="hpeldsp" jpegls_decoder_select="golomb mjpeg_decoder" jpegls_encoder_select="golomb" -jv_decoder_select="dsputil" -lagarith_decoder_select="dsputil" -ljpeg_encoder_select="aandcttables mpegvideoenc" +jv_decoder_select="blockdsp" +lagarith_decoder_select="huffyuvdsp" +ljpeg_encoder_select="aandcttables idctdsp" loco_decoder_select="golomb" -mdec_decoder_select="dsputil error_resilience mpegvideo" +mdec_decoder_select="blockdsp idctdsp mpegvideo" metasound_decoder_select="lsp mdct sinewin" -mimic_decoder_select="dsputil hpeldsp" -mjpeg_decoder_select="dsputil hpeldsp" +mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp" +mjpeg_decoder_select="blockdsp hpeldsp idctdsp" mjpeg_encoder_select="aandcttables mpegvideoenc" mjpegb_decoder_select="mjpeg_decoder" mlp_decoder_select="mlp_parser" -motionpixels_decoder_select="dsputil" +motionpixels_decoder_select="bswapdsp" mp1_decoder_select="mpegaudio" mp1float_decoder_select="mpegaudio" mp2_decoder_select="mpegaudio" @@ -1782,13 +1815,13 @@ mp3adufloat_decoder_select="mpegaudio" mp3float_decoder_select="mpegaudio" mp3on4_decoder_select="mpegaudio" mp3on4float_decoder_select="mpegaudio" -mpc7_decoder_select="dsputil mpegaudiodsp" +mpc7_decoder_select="bswapdsp mpegaudiodsp" mpc8_decoder_select="mpegaudiodsp" mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h" mpeg_xvmc_decoder_select="mpeg2video_decoder" -mpeg1video_decoder_select="error_resilience mpegvideo" +mpeg1video_decoder_select="error_resilience mpeg_er mpegvideo" mpeg1video_encoder_select="aandcttables mpegvideoenc" -mpeg2video_decoder_select="error_resilience mpegvideo" +mpeg2video_decoder_select="error_resilience mpeg_er mpegvideo" mpeg2video_encoder_select="aandcttables mpegvideoenc" mpeg4_decoder_select="h263_decoder mpeg4video_parser" mpeg4_encoder_select="h263_encoder" @@ -1797,47 +1830,49 @@ 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 vc1_decoder" +mss2_decoder_select="error_resilience mpeg_er qpeldsp vc1_decoder" mxpeg_decoder_select="mjpeg_decoder" nellymoser_decoder_select="mdct sinewin" nellymoser_encoder_select="audio_frame_queue mdct sinewin" -nuv_decoder_select="dsputil lzo" +nuv_decoder_select="idctdsp lzo" +on2avc_decoder_select="mdct" +opus_decoder_deps="avresample" png_decoder_deps="zlib" png_encoder_deps="zlib" -png_encoder_select="dsputil" -prores_decoder_select="dsputil" -prores_encoder_select="dsputil" +png_encoder_select="huffyuvencdsp" +prores_decoder_select="idctdsp" +prores_encoder_select="fdctdsp" qcelp_decoder_select="lsp" qdm2_decoder_select="mdct rdft mpegaudiodsp" ra_144_encoder_select="audio_frame_queue lpc" ralf_decoder_select="golomb" -rv10_decoder_select="error_resilience h263_decoder h263dsp" +rv10_decoder_select="error_resilience h263_decoder h263dsp mpeg_er" rv10_encoder_select="h263_encoder" -rv20_decoder_select="error_resilience h263_decoder h263dsp" +rv20_decoder_select="error_resilience h263_decoder h263dsp mpeg_er" rv20_encoder_select="h263_encoder" -rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp" -rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpegvideo videodsp" +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" shorten_decoder_select="golomb" sipr_decoder_select="lsp" sp5x_decoder_select="mjpeg_decoder" svq1_decoder_select="hpeldsp" -svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc" +svq1_encoder_select="aandcttables hpeldsp me_cmp mpegvideoenc" svq3_decoder_select="h264_decoder hpeldsp tpeldsp" svq3_decoder_suggest="zlib" -tak_decoder_select="dsputil" +tak_decoder_select="audiodsp" theora_decoder_select="vp3_decoder" thp_decoder_select="mjpeg_decoder" tiff_decoder_suggest="zlib" tiff_encoder_suggest="zlib" truehd_decoder_select="mlp_decoder" -truemotion2_decoder_select="dsputil" -truespeech_decoder_select="dsputil" +truemotion2_decoder_select="bswapdsp" +truespeech_decoder_select="bswapdsp" tscc_decoder_deps="zlib" twinvq_decoder_select="mdct lsp sinewin" -utvideo_decoder_select="dsputil" -utvideo_encoder_select="dsputil huffman" -vble_decoder_select="dsputil" -vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel intrax8" +utvideo_decoder_select="bswapdsp" +utvideo_encoder_select="bswapdsp huffman huffyuvencdsp" +vble_decoder_select="huffyuvdsp" +vc1_decoder_select="blockdsp error_resilience h263_decoder h264chroma h264qpel intrax8 mpeg_er qpeldsp" vc1image_decoder_select="vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="mdct" @@ -1846,6 +1881,7 @@ vp5_decoder_select="h264chroma hpeldsp videodsp vp3dsp" vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp" vp6a_decoder_select="vp6_decoder" vp6f_decoder_select="vp6_decoder" +vp7_decoder_select="h264pred videodsp" vp8_decoder_select="h264pred videodsp" vp9_decoder_select="videodsp" webp_decoder_select="vp8_decoder" @@ -1857,7 +1893,7 @@ wmav2_encoder_select="mdct sinewin" wmavoice_decoder_select="lsp rdft dct mdct sinewin" wmv1_decoder_select="h263_decoder" wmv1_encoder_select="h263_encoder" -wmv2_decoder_select="h263_decoder intrax8 videodsp" +wmv2_decoder_select="blockdsp h263_decoder idctdsp intrax8 videodsp" wmv2_encoder_select="h263_encoder" wmv3_decoder_select="vc1_decoder" wmv3image_decoder_select="wmv3_decoder" @@ -1884,6 +1920,8 @@ h264_vaapi_hwaccel_deps="vaapi" h264_vaapi_hwaccel_select="h264_decoder" h264_vda_hwaccel_deps="vda" h264_vda_hwaccel_select="h264_decoder" +h264_vda_old_hwaccel_deps="vda" +h264_vda_old_hwaccel_select="h264_decoder" h264_vdpau_hwaccel_deps="vdpau" h264_vdpau_hwaccel_select="h264_decoder" mpeg1_vdpau_hwaccel_deps="vdpau" @@ -1910,8 +1948,8 @@ wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel" # parsers h264_parser_select="h264_decoder" -mpeg4video_parser_select="error_resilience h263dsp mpegvideo" -mpegvideo_parser_select="error_resilience mpegvideo" +mpegvideo_parser_select="mpegvideo" +mpeg4video_parser_select="error_resilience h263dsp mpeg_er mpegvideo qpeldsp" vc1_parser_select="mpegvideo" # external libraries @@ -1943,6 +1981,7 @@ libspeex_decoder_deps="libspeex" libspeex_encoder_deps="libspeex" libspeex_encoder_select="audio_frame_queue" libtheora_encoder_deps="libtheora" +libtwolame_encoder_deps="libtwolame" libvo_aacenc_encoder_deps="libvo_aacenc" libvo_aacenc_encoder_select="audio_frame_queue" libvo_amrwbenc_encoder_deps="libvo_amrwbenc" @@ -1970,6 +2009,8 @@ avisynth_demuxer_deps="avisynth" avisynth_demuxer_select="riffdec" caf_demuxer_select="riffdec" dirac_demuxer_select="dirac_parser" +dv_demuxer_select="dvprofile" +dv_muxer_select="dvprofile" dxa_demuxer_select="riffdec" eac3_demuxer_select="ac3_parser" f4v_muxer_select="mov_muxer" @@ -2074,6 +2115,7 @@ unix_protocol_select="network" # filters blackframe_filter_deps="gpl" boxblur_filter_deps="gpl" +bs2b_filter_deps="libbs2b" cropdetect_filter_deps="gpl" delogo_filter_deps="gpl" drawtext_filter_deps="libfreetype" @@ -2094,11 +2136,11 @@ metadata_example_deps="avformat avutil" output_example_deps="avcodec avformat avutil swscale" transcode_aac_example_deps="avcodec avformat avresample" -# libraries +# libraries, in linking order avcodec_deps="avutil" -avdevice_deps="avutil avcodec avformat" +avdevice_deps="avformat avcodec avutil" avfilter_deps="avutil" -avformat_deps="avutil avcodec" +avformat_deps="avcodec avutil" avresample_deps="avutil" swscale_deps="avutil" @@ -2111,8 +2153,6 @@ avplay_deps="avcodec avformat avresample swscale sdl" avplay_libs='$sdl_libs' avplay_select="rdft" avprobe_deps="avcodec avformat" -avserver_deps="avformat fork !shared" -avserver_select="ffm_muxer rtp_protocol rtsp_demuxer" # documentation pod2man_deps="doc" @@ -2349,6 +2389,10 @@ for opt do name=$(echo "${optval}" | sed "s/,/_${thing}|/g")_${thing} $action $(filter "$name" $list) ;; + --enable-avserver|--disable-avserver*) + warn "avserver has been removed, the ${opt} option is only"\ + "provided for compatibility and will be removed in the future" + ;; --enable-?*|--disable-?*) eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g') if is_in $option $COMPONENT_LIST; then @@ -2417,7 +2461,7 @@ case "$toolchain" in ;; clang-usan) cc_default="clang" - add_cflags -fsanitize=undefined + add_cflags -fsanitize=undefined -O1 add_ldflags -fsanitize=undefined ;; gcc-asan) @@ -2758,10 +2802,10 @@ probe_cc(){ _cflags_speed='-fast' _cflags_size='-O1' _flags_filter=ccc_flags - elif $_cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then + elif $_cc --vsn 2>/dev/null | grep -Eq "ARM (C/C\+\+ )?Compiler"; then test -d "$sysroot" || die "No valid sysroot specified." _type=armcc - _ident=$($_cc --vsn | head -n1) + _ident=$($_cc --vsn | head -n1 | sed 's/.*: //') armcc_conf="$PWD/armcc.conf" $_cc --arm_linux_configure \ --arm_linux_config_file="$armcc_conf" \ @@ -3309,6 +3353,13 @@ case $target_os in add_cppflags '-I\$(SRC_PATH)/compat/aix' enabled shared && add_ldflags -Wl,-brtl ;; + android) + disable symver + SLIB_INSTALL_NAME='$(SLIBNAME)' + SLIB_INSTALL_LINKS= + # soname not set on purpose + SHFLAGS=-shared + ;; haiku) prefix_default="/boot/common" network_extralibs="-lnetwork" @@ -3501,7 +3552,6 @@ case $target_os in add_compat strtod.o strtod=avpriv_strtod network_extralibs='-lbsd' exeobjs=compat/plan9/main.o - disable avserver cp_f='cp' ;; none) @@ -3692,9 +3742,33 @@ unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E'; EOF od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian + +if enabled asm; then + enabled arm && nogas=die + enabled_all ppc altivec && nogas=warn + as=${gas:=$as} + check_as <= 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 >= 9" || - die "ERROR: libx265 version must be >= 9."; } + { check_cpp_condition x265.h "X265_BUILD >= 17" || + die "ERROR: libx265 version must be >= 17."; } enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore enabled openssl && { check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto || @@ -4279,7 +4349,9 @@ elif enabled cparser; then add_cflags -Wno-missing-variable-declarations add_cflags -Wno-empty-statement elif enabled armcc; then - # 2523: use of inline assembler is deprecated + add_cflags -W${armcc_opt},--diag_suppress=4343 # hardfp compat + add_cflags -W${armcc_opt},--diag_suppress=3036 # using . as system include dir + # 2523: use of inline assembly is deprecated add_cflags -W${armcc_opt},--diag_suppress=2523 add_cflags -W${armcc_opt},--diag_suppress=1207 add_cflags -W${armcc_opt},--diag_suppress=1293 # assignment in condition @@ -4335,6 +4407,10 @@ check_deps $CONFIG_LIST \ $HAVE_LIST \ $ALL_COMPONENTS \ +enabled_all dxva2 CoTaskMemFree && + prepend avconv_libs $($ldflags_filter "-lole32") && + enable dxva2_lib + ! enabled_any memalign posix_memalign aligned_malloc && enabled_any $need_memalign && enable memalign_hack @@ -4346,6 +4422,22 @@ for thread in $THREADS_LIST; do fi done +# conditional library dependencies, in linking order +enabled movie_filter && prepend avfilter_deps "avformat avcodec" +enabled resample_filter && prepend avfilter_deps "avresample" +enabled scale_filter && prepend avfilter_deps "swscale" + +enabled opus_decoder && prepend avcodec_deps "avresample" + +expand_deps(){ + lib_deps=${1}_deps + eval "deps=\$$lib_deps" + append $lib_deps $(map 'eval echo \$${v}_deps' $deps) + unique $lib_deps +} + +map 'expand_deps $v' $LIBRARY_LIST + echo "install prefix $prefix" echo "source path $source_path" echo "C compiler $cc" @@ -4551,6 +4643,8 @@ get_version(){ map 'get_version $v' $LIBRARY_LIST +map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> config.mak' $LIBRARY_LIST + print_program_libs(){ eval "program_libs=\$${1}_libs" eval echo "LIBS-${1}=${program_libs}" >> config.mak @@ -4612,13 +4706,18 @@ test -n "$WARNINGS" && printf "\n$WARNINGS" # build pkg-config files +lib_version(){ + eval printf "\"lib${1} >= \$LIB$(toupper ${1})_VERSION, \"" +} + pkgconfig_generate(){ name=$1 shortname=${name#lib}${build_suffix} comment=$2 version=$3 libs=$4 - requires=$5 + requires=$(map 'lib_version $v' $(eval echo \$${name#lib}_deps)) + requires=${requires%, } enabled ${name#lib} || return 0 mkdir -p $name cat < $name/$name.pc @@ -4653,15 +4752,10 @@ Cflags: -I\${includedir} EOF } -lavfi_libs="libavutil = $LIBAVUTIL_VERSION" -enabled movie_filter && prepend lavfi_libs "libavformat >= $LIBAVFORMAT_VERSION, libavcodec >= $LIBAVCODEC_VERSION," -enabled resample_filter && prepend lavfi_libs "libavresample >= $LIBAVRESAMPLE_VERSION," -enabled scale_filter && prepend lavfi_libs "libswscale >= $LIBSWSCALE_VERSION," - pkgconfig_generate libavutil "Libav utility library" "$LIBAVUTIL_VERSION" "$LIBM" -pkgconfig_generate libavcodec "Libav codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" -pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" -pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" -pkgconfig_generate libavfilter "Libav video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "$lavfi_libs" -pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" -pkgconfig_generate libswscale "Libav image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION" +pkgconfig_generate libavcodec "Libav codec library" "$LIBAVCODEC_VERSION" "$extralibs" +pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" +pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" +pkgconfig_generate libavfilter "Libav video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" +pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs" +pkgconfig_generate libswscale "Libav image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM"