X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=7b4cfc5f5e5a1dd3d4bdbb3d639ebfa4cc23cc60;hb=91f4394ed31e8a5f6eec7071d38938d08b9300a6;hp=1cc9ab1fe40293e2327e12aec0ac51f0cef0257d;hpb=c881f46a9c7e787df760bac64bf7807958885113;p=ffmpeg diff --git a/configure b/configure index 1cc9ab1fe40..7b4cfc5f5e5 100755 --- a/configure +++ b/configure @@ -350,6 +350,8 @@ Developer options (useful when working on FFmpeg itself): --enable-ftrapv Trap arithmetic overflows --samples=PATH location of test samples for FATE, if not set use \$FATE_SAMPLES at make invocation time. + --enable-neon-clobber-test check NEON registers for clobbering (should be + used only for debugging purposes) --enable-xmm-clobber-test check XMM registers for clobbering (Win64-only; should be used only for debugging purposes) --enable-random randomly enable/disable components @@ -1030,11 +1032,12 @@ check_lib_cpp(){ check_pkg_config(){ log check_pkg_config "$@" - pkg="$1" + pkgandversion="$1" + pkg="${1%% *}" headers="$2" funcs="$3" shift 3 - check_cmd $pkg_config --exists --print-errors $pkg || return + check_cmd $pkg_config --exists --print-errors $pkgandversion || return pkg_cflags=$($pkg_config --cflags $pkg) pkg_libs=$($pkg_config --libs $pkg) check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && @@ -1243,6 +1246,7 @@ EXAMPLE_LIST=" filtering_video_example metadata_example muxing_example + remuxing_example resampling_audio_example scaling_video_example transcode_aac_example @@ -1371,6 +1375,7 @@ CONFIG_LIST=" mdct memalign_hack memory_poisoning + neon_clobber_test network nonfree pic @@ -1676,7 +1681,9 @@ CONFIG_EXTRA=" h264qpel hpeldsp huffman + intrax8 lgplv3 + llviddsp lpc mpegaudio mpegaudiodsp @@ -1775,8 +1782,8 @@ CMDLINE_APPEND=" armv5te_deps="arm" armv6_deps="arm" armv6t2_deps="arm" -neon_deps="arm" -vfp_deps="arm" +neon_deps_any="aarch64 arm" +vfp_deps_any="aarch64 arm" vfpv3_deps="vfp" map 'eval ${v}_inline_deps=inline_asm' $ARCH_EXT_LIST_ARM @@ -1820,10 +1827,10 @@ for ext in $(filter_out mmx $ARCH_EXT_LIST_X86); do eval ${ext}_suggest='"${ext}_external ${ext}_inline"' done -aligned_stack_if_any="ppc x86" -fast_64bit_if_any="alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" -fast_clz_if_any="alpha avr32 mips ppc x86" -fast_unaligned_if_any="ppc x86" +aligned_stack_if_any="aarch64 ppc x86" +fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64" +fast_clz_if_any="aarch64 alpha avr32 mips ppc x86" +fast_unaligned_if_any="aarch64 ppc x86" need_memalign="altivec neon sse" @@ -1898,8 +1905,8 @@ eatqi_decoder_select="aandcttables error_resilience mpegvideo" exr_decoder_select="zlib" ffv1_decoder_select="dsputil golomb rangecoder" ffv1_encoder_select="dsputil rangecoder" -ffvhuff_decoder_select="dsputil" -ffvhuff_encoder_select="dsputil huffman" +ffvhuff_decoder_select="dsputil llviddsp" +ffvhuff_encoder_select="dsputil huffman llviddsp" flac_decoder_select="golomb" flac_encoder_select="dsputil golomb lpc" flashsv_decoder_select="zlib" @@ -1921,8 +1928,8 @@ h263p_encoder_select="h263_encoder" h264_decoder_select="golomb h264chroma h264dsp h264pred h264qpel videodsp" h264_decoder_suggest="error_resilience" hevc_decoder_select="dsputil golomb videodsp" -huffyuv_decoder_select="dsputil" -huffyuv_encoder_select="dsputil huffman" +huffyuv_decoder_select="dsputil llviddsp" +huffyuv_encoder_select="dsputil huffman llviddsp" iac_decoder_select="dsputil fft mdct sinewin" imc_decoder_select="dsputil fft mdct sinewin" indeo3_decoder_select="hpeldsp" @@ -1956,9 +1963,9 @@ mpc8_decoder_select="dsputil mpegaudiodsp" mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h" mpeg_xvmc_decoder_select="mpeg2video_decoder" mpeg1video_decoder_select="error_resilience mpegvideo" -mpeg1video_encoder_select="aandcttables mpegvideoenc" +mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp" mpeg2video_decoder_select="error_resilience mpegvideo" -mpeg2video_encoder_select="aandcttables mpegvideoenc" +mpeg2video_encoder_select="aandcttables mpegvideoenc h263dsp" mpeg4_decoder_select="h263_decoder mpeg4video_parser" mpeg4_encoder_select="h263_encoder" msmpeg4v1_decoder_select="h263_decoder" @@ -2011,7 +2018,7 @@ 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" +vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel intrax8" vc1image_decoder_select="vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="mdct" @@ -2031,7 +2038,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 videodsp" +wmv2_decoder_select="h263_decoder intrax8 videodsp" wmv2_encoder_select="h263_encoder" wmv3_decoder_select="vc1_decoder" wmv3image_decoder_select="wmv3_decoder" @@ -2368,7 +2375,6 @@ super2xsai_filter_deps="gpl" tinterlace_filter_deps="gpl" vidstabdetect_filter_deps="libvidstab" vidstabtransform_filter_deps="libvidstab" -yadif_filter_deps="gpl" pixfmts_super2xsai_test_deps="super2xsai_filter" tinterlace_merge_test_deps="tinterlace_filter" tinterlace_pad_test_deps="tinterlace_filter" @@ -4056,7 +4062,14 @@ od -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian check_inline_asm inline_asm_labels '"1:\n"' -if enabled alpha; then +if enabled aarch64; then + # internal assembler in clang 3.3 does not support this instruction + enabled neon && check_insn neon 'ext v0.8B, v0.8B, v1.8B, #1' + enabled vfp && check_insn vfp 'fmadd d0, d0, d1, d2' + + map 'enabled_any ${v}_external ${v}_inline || disable $v' $ARCH_EXT_LIST_ARM + +elif enabled alpha; then check_cflags -mieee @@ -4448,7 +4461,7 @@ enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame die "ERROR: libtwolame must be installed and version must be >= 0.3.10"; } enabled libutvideo && require_cpp utvideo "stdint.h stdlib.h utvideo/utvideo.h utvideo/Codec.h" 'CCodec*' -lutvideo -lstdc++ enabled libv4l2 && require_pkg_config libv4l2 libv4l2.h v4l2_ioctl -enabled libvidstab && require_pkg_config vidstab vid.stab/libvidstab.h vsMotionDetectInit +enabled libvidstab && require_pkg_config "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg @@ -4629,6 +4642,18 @@ test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic # -wN '..@*' is more selective than -x, but not available everywhere. check_stripflags -wN \'..@*\' || check_stripflags -x +enabled neon_clobber_test && + check_ldflags -Wl,--wrap,avcodec_open2 \ + -Wl,--wrap,avcodec_decode_audio4 \ + -Wl,--wrap,avcodec_decode_video2 \ + -Wl,--wrap,avcodec_decode_subtitle2 \ + -Wl,--wrap,avcodec_encode_audio2 \ + -Wl,--wrap,avcodec_encode_video2 \ + -Wl,--wrap,avcodec_encode_subtitle \ + -Wl,--wrap,swr_convert \ + -Wl,--wrap,avresample_convert || + disable neon_clobber_test + enabled xmm_clobber_test && check_ldflags -Wl,--wrap,avcodec_open2 \ -Wl,--wrap,avcodec_decode_audio4 \ @@ -4638,6 +4663,8 @@ enabled xmm_clobber_test && -Wl,--wrap,avcodec_encode_video \ -Wl,--wrap,avcodec_encode_video2 \ -Wl,--wrap,avcodec_encode_subtitle \ + -Wl,--wrap,swr_convert \ + -Wl,--wrap,avresample_convert \ -Wl,--wrap,sws_scale || disable xmm_clobber_test @@ -4855,6 +4882,10 @@ if enabled x86; then echo "EBX available ${ebx_available-no}" echo "EBP available ${ebp_available-no}" fi +if enabled aarch64; then + echo "NEON enabled ${neon-no}" + echo "VFP enabled ${vfp-no}" +fi if enabled arm; then echo "ARMv5TE enabled ${armv5te-no}" echo "ARMv6 enabled ${armv6-no}"