X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=5ec664c8851b4431ae929c0321e1b11e763367b8;hb=3123823cb2376affe6179efe36c52d6017e998d3;hp=99cb44b45e2ac8afff928d246e531f5b012083f9;hpb=ec1ee802a2e1cb3317bd44851cc28f95b5916051;p=ffmpeg diff --git a/configure b/configure index 99cb44b45e2..5ec664c8851 100755 --- a/configure +++ b/configure @@ -86,11 +86,11 @@ Configuration options: --disable-ffserver disable ffserver build --disable-avdevice disable libavdevice build --disable-avcodec disable libavcodec build + --disable-avcore disable libavcore build --disable-avformat disable libavformat build --disable-swscale disable libswscale build --enable-postproc enable GPLed postprocessing support [no] --disable-avfilter disable video filter support [no] - --enable-avfilter-lavf video filters dependent on avformat [no] --disable-pthreads disable pthreads [auto] --enable-w32threads use Win32 threads [no] --enable-x11grab enable X11 grabbing [no] @@ -104,6 +104,7 @@ Configuration options: --disable-dct disable DCT code --disable-fft disable FFT code --disable-golomb disable Golomb code + --disable-huffman disable Huffman code --disable-lpc disable LPC code --disable-mdct disable MDCT code --disable-rdft disable RDFT code @@ -180,6 +181,7 @@ External library support: native implementation exists [no] --enable-libvpx enable VP8 support via libvpx [no] --enable-libx264 enable H.264 encoding via x264 [no] + --enable-libxavs enable AVS encoding via xavs [no] --enable-libxvid enable Xvid encoding via xvidcore, native MPEG-4/Xvid encoder exists [no] --enable-mlib enable Sun medialib [no] @@ -304,7 +306,7 @@ c_escape(){ sh_quote(){ v=$(echo "$1" | sed "s/'/'\\\\''/g") - test "$v" = "${v#*[ |&;<>()$\`\\\"\'*?\[\]#~=%]}" || v="'$v'" + test "x$v" = "x${v#*[!A-Za-z0-9_/.+-]}" || v="'$v'" echo "$v" } @@ -845,9 +847,9 @@ CONFIG_LIST=" $COMPONENT_LIST aandct avcodec + avcore avdevice avfilter - avfilter_lavf avformat avisynth bzlib @@ -865,7 +867,9 @@ CONFIG_LIST=" gpl gray h264dsp + h264pred hardcoded_tables + huffman libdc1394 libdirac libfaac @@ -882,6 +886,7 @@ CONFIG_LIST=" libvorbis libvpx libx264 + libxavs libxvid lpc lsp @@ -1158,11 +1163,12 @@ inline_asm_deps="!tms470" symver_if_any="symver_asm_label symver_gnu_asm" # subsystems +dct_select="rdft" mdct_select="fft" rdft_select="fft" # decoders / encoders / hardware accelerators -aac_decoder_select="mdct rdft aac_parser" +aac_decoder_select="mdct rdft" aac_encoder_select="mdct" ac3_decoder_select="mdct ac3_parser" alac_encoder_select="lpc" @@ -1188,13 +1194,14 @@ flashsv_decoder_select="zlib" flashsv_encoder_select="zlib" flv_decoder_select="h263_decoder" flv_encoder_select="h263_encoder" +fraps_decoder_select="huffman" h261_encoder_select="aandct" h263_decoder_select="h263_parser" h263_encoder_select="aandct" h263_vaapi_hwaccel_select="vaapi h263_decoder" h263i_decoder_select="h263_decoder" h263p_encoder_select="h263_encoder" -h264_decoder_select="golomb h264dsp" +h264_decoder_select="golomb h264dsp h264pred" h264_dxva2_hwaccel_deps="dxva2api_h" h264_dxva2_hwaccel_select="dxva2 h264_decoder" h264_vaapi_hwaccel_select="vaapi" @@ -1241,8 +1248,8 @@ rv10_decoder_select="h263_decoder" rv10_encoder_select="h263_encoder" rv20_decoder_select="h263_decoder" rv20_encoder_select="h263_encoder" -rv30_decoder_select="golomb h264dsp" -rv40_decoder_select="golomb h264dsp" +rv30_decoder_select="golomb h264pred" +rv40_decoder_select="golomb h264pred" shorten_decoder_select="golomb" sipr_decoder_select="lsp" snow_decoder_select="dwt" @@ -1251,7 +1258,7 @@ sonic_decoder_select="golomb" sonic_encoder_select="golomb" sonic_ls_encoder_select="golomb" svq1_encoder_select="aandct" -svq3_decoder_select="golomb h264dsp" +svq3_decoder_select="golomb h264dsp h264pred" svq3_decoder_suggest="zlib" theora_decoder_select="vp3_decoder" tiff_decoder_suggest="zlib" @@ -1266,9 +1273,10 @@ vc1_vaapi_hwaccel_select="vaapi vc1_decoder" vc1_vdpau_decoder_select="vdpau vc1_decoder" vorbis_decoder_select="mdct" vorbis_encoder_select="mdct" +vp6_decoder_select="huffman" vp6a_decoder_select="vp6_decoder" vp6f_decoder_select="vp6_decoder" -vp8_decoder_select="h264dsp" +vp8_decoder_select="h264pred" wmapro_decoder_select="mdct" wmav1_decoder_select="mdct" wmav1_encoder_select="mdct" @@ -1292,10 +1300,7 @@ vaapi_deps="va_va_h" vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" # parsers -h264_parser_select="golomb h264dsp" - -# bitstream_filters -aac_adtstoasc_bsf_select="aac_parser" +h264_parser_select="golomb h264dsp h264pred" # external libraries libdirac_decoder_deps="libdirac !libschroedinger" @@ -1318,6 +1323,7 @@ libvorbis_encoder_deps="libvorbis" libvpx_decoder_deps="libvpx" libvpx_encoder_deps="libvpx" libx264_encoder_deps="libx264" +libxavs_encoder_deps="libxavs" libxvid_encoder_deps="libxvid" # demuxers / muxers @@ -1350,13 +1356,10 @@ w64_demuxer_deps="wav_demuxer" # indevs / outdevs alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp" -alsa_indev_extralibs="-lasound" alsa_outdev_deps="alsa_asoundlib_h" -alsa_outdev_extralibs="-lasound" bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" dv1394_indev_deps="dv1394 dv_demuxer" jack_indev_deps="jack_jack_h" -jack_indev_extralibs="-ljack" libdc1394_indev_deps="libdc1394" oss_indev_deps_any="soundcard_h sys_soundcard_h" oss_outdev_deps_any="soundcard_h sys_soundcard_h" @@ -1377,10 +1380,6 @@ rtp_protocol_select="udp_protocol" tcp_protocol_deps="network" udp_protocol_deps="network" -# filters -movie_filter_deps="avfilter_lavf" -avfilter_lavf_deps="avformat" - # libraries avdevice_deps="avcodec avformat" avformat_deps="avcodec" @@ -1411,6 +1410,11 @@ test_deps(){ done } +set_ne_test_deps(){ + eval ${1}_be_test_deps="bigendian" + eval ${1}_le_test_deps="!bigendian" +} + test_deps _encoder _decoder \ ac3 \ adpcm_g726=g726 \ @@ -1439,7 +1443,7 @@ test_deps _encoder _decoder \ mpeg1video="mpeg mpeg1b" \ mpeg2video="mpeg2 mpeg2thread" \ mpeg4="mpeg4 mpeg4adv mpeg4nr mpeg4thread error rc" \ - msmpeg4v1=msmpeg4 \ + msmpeg4v3=msmpeg4 \ msmpeg4v2 \ pbm=pbmpipe \ pcx \ @@ -1486,6 +1490,13 @@ test_deps _muxer _demuxer \ mpg_test_deps="mpeg1system_muxer mpegps_demuxer" +set_ne_test_deps pixdesc +set_ne_test_deps pixfmts_crop +set_ne_test_deps pixfmts_null +set_ne_test_deps pixfmts_pad +set_ne_test_deps pixfmts_scale +set_ne_test_deps pixfmts_vflip + # default parameters logfile="config.log" @@ -1524,6 +1535,7 @@ host_os=$target_os_default # configurable options enable avcodec +enable avcore enable avdevice enable avfilter enable avformat @@ -1612,12 +1624,14 @@ PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c) FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c) find_tests(){ - map 'echo ${v}_test' $(ls "$source_path"/tests/ref/$1) + map "echo ${2}\${v}_test" $(ls "$source_path"/tests/ref/$1 | grep -v '[^-a-z0-9_]') } ACODEC_TESTS=$(find_tests acodec) VCODEC_TESTS=$(find_tests vsynth1) LAVF_TESTS=$(find_tests lavf) +LAVFI_TESTS=$(find_tests lavfi) +SEEK_TESTS=$(find_tests seek seek_) pcm_test_deps=$(map 'echo ${v%_*}_decoder $v' $(filter pcm_* $ENCODER_LIST)) @@ -1627,7 +1641,7 @@ for n in $COMPONENT_LIST; do eval ${n}_if_any="\$$v" done -enable $ARCH_EXT_LIST $ACODEC_TESTS $VCODEC_TESTS $LAVF_TESTS +enable $ARCH_EXT_LIST $ACODEC_TESTS $VCODEC_TESTS $LAVF_TESTS $LAVFI_TESTS $SEEK_TESTS die_unknown(){ echo "Unknown option \"$1\"." @@ -1786,6 +1800,8 @@ filter_asflags=echo if $cc -v 2>&1 | grep -qi ^gcc; then cc_type=gcc cc_version=__VERSION__ + gcc_extra_ver=$(expr "$($cc --version | head -n1)" : '.*\((.*)\)') + cc_ident="gcc $($cc -dumpversion) $gcc_extra_ver" if ! $cc -dumpversion | grep -q '^2\.'; then CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' @@ -1795,6 +1811,7 @@ if $cc -v 2>&1 | grep -qi ^gcc; then elif $cc --version 2>/dev/null | grep -q Intel; then cc_type=icc cc_version="AV_STRINGIFY(__INTEL_COMPILER)" + cc_ident=$($cc --version | head -n1) CC_DEPFLAGS='-MMD' AS_DEPFLAGS='-MMD' speed_cflags='-O3' @@ -1803,11 +1820,13 @@ elif $cc --version 2>/dev/null | grep -q Intel; then elif $cc -v 2>&1 | grep -q xlc; then cc_type=xlc cc_version="AV_STRINGIFY(__IBMC__)" + cc_ident=$($cc -qversion 2>/dev/null | head -n1) speed_cflags='-O5' size_cflags='-O5 -qcompact' elif $cc -V 2>/dev/null | grep -q Compaq; then cc_type=ccc cc_version="AV_STRINGIFY(__DECC_VER)" + cc_ident=$($cc -V | head -n1 | cut -d' ' -f1-3) DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -M' debuglevel=3 add_ldflags -Wl,-z,now # calls to libots crash without this @@ -1817,6 +1836,7 @@ elif $cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then test -d "$sysroot" || die "No valid sysroot specified." cc_type=armcc cc_version="AV_STRINGIFY(__ARMCC_VERSION)" + cc_ident=$($cc --vsn | head -n1) armcc_conf="$PWD/armcc.conf" $cc --arm_linux_configure \ --arm_linux_config_file="$armcc_conf" \ @@ -1832,6 +1852,7 @@ elif $cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then elif $cc -version 2>/dev/null | grep -q TMS470; then cc_type=tms470 cc_version="AV_STRINGIFY(__TI_COMPILER_VERSION__)" + cc_ident=$($cc -version | head -n1 | tr -s ' ') cc="$cc --gcc --abi=eabi -eo=.o -mc -me" CC_O='-fr=$(@D)' as_default="${cross_prefix}gcc" @@ -1872,6 +1893,7 @@ elif $cc -v 2>&1 | grep -q clang; then cc_type=clang $cc -dM -E $TMPC | grep -q __clang_version__ && cc_version=__clang_version__ || cc_version=__VERSION__ + cc_ident=$($cc --version | head -n1) CC_DEPFLAGS='-MMD' AS_DEPFLAGS='-MMD' speed_cflags='-O3' @@ -1879,6 +1901,7 @@ elif $cc -v 2>&1 | grep -q clang; then elif $cc -V 2>&1 | grep -q Sun; then cc_type=suncc cc_version="AV_STRINGIFY(__SUNPRO_C)" + cc_ident=$($cc -V 2>&1 | head -n1 | cut -d' ' -f 2-) DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)' DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -xM1' speed_cflags='-O5' @@ -1917,6 +1940,14 @@ elif $cc -V 2>&1 | grep -q Sun; then esac done } +elif $cc -v 2>&1 | grep -q PathScale; then + cc_type=pathscale + cc_version=__PATHSCALE__ + cc_ident=$($cc -v 2>&1 | head -n1 | tr -d :) + CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@' + speed_cflags='-O2' + size_cflags='-Os' fi test -n "$cc_type" && enable $cc_type || @@ -2102,9 +2133,18 @@ elif enabled arm; then case $cpu in armv*) cpuflags="-march=$cpu" + subarch=$(echo $cpu | sed 's/[^a-z0-9]//g') ;; *) cpuflags="-mcpu=$cpu" + case $cpu in + cortex-a*) subarch=armv7a ;; + cortex-r*) subarch=armv7r ;; + cortex-m*) subarch=armv7m ;; + arm11*) subarch=armv6 ;; + arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;; + armv4*|arm7*|arm9[24]*) subarch=armv4 ;; + esac ;; esac @@ -2271,10 +2311,9 @@ case $target_os in objformat="win32" enable dos_paths check_cflags -fno-common - if ! check_cpp_condition _mingw.h "defined (__MINGW64_VERSION_MAJOR)"; then - check_cpp_condition _mingw.h "(__MINGW32_MAJOR_VERSION > 3) || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || + check_cpp_condition _mingw.h "defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) \ + || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || die "ERROR: MinGW runtime version must be >= 3.15." - fi ;; cygwin*) target_os=cygwin @@ -2358,6 +2397,7 @@ die_license_disabled() { } die_license_disabled gpl libx264 +die_license_disabled gpl libxavs die_license_disabled gpl libxvid die_license_disabled gpl postproc die_license_disabled gpl x11grab @@ -2657,12 +2697,15 @@ enabled libschroedinger && add_cflags $(pkg-config --cflags schroedinger-1.0) && enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg -enabled libvpx && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx && - check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_enc_init_ver -lvpx || - die "ERROR: libvpx version must be >=0.9.1"; } +enabled libvpx && { + enabled libvpx_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx || + die "ERROR: libvpx decoder version must be >=0.9.1"; } + enabled libvpx_encoder && { check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_enc_init_ver -lvpx || + die "ERROR: libvpx encoder version must be >=0.9.1"; } } enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 && { check_cpp_condition x264.h "X264_BUILD >= 98" || die "ERROR: libx264 version must be >= 0.98."; } +enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib @@ -2758,6 +2801,7 @@ enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel" # add some useful compiler flags if supported check_cflags -Wdeclaration-after-statement check_cflags -Wall +check_cflags -Wno-parentheses check_cflags -Wno-switch check_cflags -Wdisabled-optimization check_cflags -Wpointer-arith @@ -2773,7 +2817,7 @@ enabled extra_warnings && check_cflags -Winline # add some linker flags check_ldflags -Wl,--warn-common check_ldflags -Wl,--as-needed -check_ldflags '-Wl,-rpath-link,\$(BUILD_ROOT)/libpostproc -Wl,-rpath-link,\$(BUILD_ROOT)/libswscale -Wl,-rpath-link,\$(BUILD_ROOT)/libavfilter -Wl,-rpath-link,\$(BUILD_ROOT)/libavdevice -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' +check_ldflags '-Wl,-rpath-link,\$(BUILD_ROOT)/libpostproc -Wl,-rpath-link,\$(BUILD_ROOT)/libswscale -Wl,-rpath-link,\$(BUILD_ROOT)/libavfilter -Wl,-rpath-link,\$(BUILD_ROOT)/libavdevice -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavcore -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' check_ldflags -Wl,-Bsymbolic echo "X{};" > $TMPV @@ -2856,6 +2900,8 @@ check_deps $CONFIG_LIST \ $ACODEC_TESTS \ $VCODEC_TESTS \ $LAVF_TESTS \ + $LAVFI_TESTS \ + $SEEK_TESTS \ enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; } @@ -2911,7 +2957,6 @@ echo "static ${static-no}" echo "shared ${shared-no}" echo "postprocessing support ${postproc-no}" echo "new filter support ${avfilter-no}" -echo "filters using lavformat ${avfilter_lavf-no}" echo "network support ${network-no}" echo "threading support ${thread_type-no}" echo "SDL support ${sdl-no}" @@ -2933,6 +2978,7 @@ echo "libtheora enabled ${libtheora-no}" echo "libvorbis enabled ${libvorbis-no}" echo "libvpx enabled ${libvpx-no}" echo "libx264 enabled ${libx264-no}" +echo "libxavs enabled ${libxavs-no}" echo "libxvid enabled ${libxvid-no}" echo "zlib enabled ${zlib-no}" echo "bzlib enabled ${bzlib-no}" @@ -2966,6 +3012,7 @@ if enabled source_path_used; then doc libavcodec libavcodec/$arch + libavcore libavdevice libavfilter libavformat @@ -2984,6 +3031,7 @@ if enabled source_path_used; then doc/texi2pod.pl libavcodec/Makefile libavcodec/${arch}/Makefile + libavcore/Makefile libavdevice/Makefile libavfilter/Makefile libavformat/Makefile @@ -3012,6 +3060,7 @@ MANDIR=\$(DESTDIR)$mandir SRC_PATH="$source_path" SRC_PATH_BARE=$source_path BUILD_ROOT="$PWD" +CC_IDENT=$cc_ident ARCH=$arch CC=$cc AS=$as @@ -3082,6 +3131,7 @@ get_version(){ get_version LIBSWSCALE libswscale/swscale.h get_version LIBPOSTPROC libpostproc/postprocess.h get_version LIBAVCODEC libavcodec/avcodec.h +get_version LIBAVCORE libavcore/avcore.h get_version LIBAVDEVICE libavdevice/avdevice.h get_version LIBAVFORMAT libavformat/avformat.h get_version LIBAVUTIL libavutil/avutil.h @@ -3130,6 +3180,8 @@ cat >>config.mak <> $TMPH @@ -3137,6 +3189,7 @@ echo "endif # FFMPEG_CONFIG_MAK" >> config.mak # Do not overwrite an unchanged config.h to avoid superfluous rebuilds. cp_if_changed $TMPH config.h +touch .config cat > $TMPH <> $TMPH cp_if_changed $TMPH libavutil/avconfig.h +echo "config:$arch:$subarch:$cpu:$target_os:$cc_ident:$FFMPEG_CONFIGURATION" >config.fate + test -n "$WARNINGS" && printf "\n$WARNINGS" # build pkg-config files @@ -3161,6 +3216,7 @@ comment=$2 version=$3 libs=$4 requires=$5 +enabled $shortname || return 0 cat < $name/$name.pc prefix=$prefix exec_prefix=\${prefix} @@ -3194,11 +3250,10 @@ EOF } pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" -pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" +pkgconfig_generate libavcore "FFmpeg multimedia shared core utilities library" "$LIBAVCORE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION" +pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavcore = $LIBAVCORE_VERSION" pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" -enabled avfilter && - pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" -enabled postproc && - pkgconfig_generate libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION" +pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "libavcore = $LIBAVCORE_VERSION" +pkgconfig_generate libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION" pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION"