X-Git-Url: https://rtime.felk.cvut.cz/gitweb/frescor/ffmpeg.git/blobdiff_plain/277330d12263779d5398dbcb28e03d2a99df8a60..HEAD:/configure diff --git a/configure b/configure index 6ae7a00f8..ba18d8fa1 100755 --- a/configure +++ b/configure @@ -100,6 +100,7 @@ show_help(){ echo " --disable-golomb disable Golomb code" echo " --disable-mdct disable MDCT code" echo " --disable-rdft disable RDFT code" + echo " --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)" echo " --enable-hardcoded-tables use hardcoded tables instead of runtime generation" echo " --enable-memalign-hack emulate memalign, interferes with memory debuggers" echo " --enable-beos-netserver enable BeOS netserver" @@ -109,6 +110,9 @@ show_help(){ echo " --disable-decoder=NAME disable decoder NAME" echo " --enable-decoder=NAME enable decoder NAME" echo " --disable-decoders disable all decoders" + echo " --disable-hwaccel=NAME disable hwaccel NAME" + echo " --enable-hwaccel=NAME enable hwaccel NAME" + echo " --disable-hwaccels disable all hwaccels" echo " --disable-muxer=NAME disable muxer NAME" echo " --enable-muxer=NAME enable muxer NAME" echo " --disable-muxers disable all muxers" @@ -132,6 +136,7 @@ show_help(){ echo " --disable-filters disable all filters" echo " --list-decoders show all available decoders" echo " --list-encoders show all available encoders" + echo " --list-hwaccels show all available hardware accelerators" echo " --list-muxers show all available muxers" echo " --list-demuxers show all available demuxers" echo " --list-parsers show all available parsers" @@ -749,6 +754,7 @@ COMPONENT_LIST=" demuxers encoders filters + hwaccels indevs muxers outdevs @@ -801,6 +807,7 @@ CONFIG_LIST=" postproc powerpc_perf rdft + runtime_cpudetect shared small static @@ -883,11 +890,13 @@ HAVE_LIST=" getrusage inet_aton inline_asm + ldbrx libdc1394_1 libdc1394_2 llrint lrint lrintf + lzo1x_999_compress machine_ioctl_bt848_h machine_ioctl_meteor_h malloc_h @@ -915,6 +924,7 @@ HAVE_LIST=" truncf VirtualAlloc winsock2_h + xform_asm yasm " @@ -989,7 +999,7 @@ sse_deps="mmx" ssse3_deps="sse" vis_deps="sparc" -# decoders / encoders +# decoders / encoders / hardware accelerators aac_decoder_select="fft mdct" ac3_decoder_deps="gpl" ac3_decoder_select="fft mdct" @@ -1012,8 +1022,10 @@ flashsv_encoder_select="zlib" flv_encoder_select="aandct" h261_encoder_select="aandct" h263_encoder_select="aandct" +h263_vaapi_hwaccel_deps="va_va_h" h263p_encoder_select="aandct" h264_decoder_select="golomb" +h264_vaapi_hwaccel_deps="va_va_h" h264_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" imc_decoder_select="fft mdct" jpegls_decoder_select="golomb" @@ -1026,6 +1038,8 @@ mpeg2video_encoder_select="aandct" mpeg4_encoder_select="aandct" mpeg_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" mpeg1_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" +mpeg2_vaapi_hwaccel_deps="va_va_h" +mpeg4_vaapi_hwaccel_deps="va_va_h" mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h" msmpeg4v1_encoder_select="aandct" msmpeg4v2_encoder_select="aandct" @@ -1048,6 +1062,7 @@ svq3_decoder_suggest="zlib" tiff_decoder_suggest="zlib" tiff_encoder_suggest="zlib" tscc_decoder_select="zlib" +vc1_vaapi_hwaccel_deps="va_va_h" vc1_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" vorbis_decoder_select="fft mdct" vorbis_encoder_select="fft mdct" @@ -1057,6 +1072,7 @@ wmav2_decoder_select="fft mdct" wmav2_encoder_select="fft mdct" wmv1_encoder_select="aandct" wmv2_encoder_select="aandct" +wmv3_vaapi_hwaccel_deps="va_va_h" wmv3_vdpau_decoder_deps="vdpau_vdpau_h vdpau_vdpau_x11_h" zlib_decoder_select="zlib" zlib_encoder_select="zlib" @@ -1101,6 +1117,8 @@ avisynth_demuxer_deps="avisynth" bktr_demuxer_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h" dirac_demuxer_deps="dirac_parser" dv1394_demuxer_deps="dv1394 dv_demuxer" +jack_demuxer_deps="jack_jack_h" +jack_demuxer_extralibs="-ljack" libdc1394_demuxer_deps="libdc1394" libnut_demuxer_deps="libnut" libnut_muxer_deps="libnut" @@ -1237,6 +1255,7 @@ find_things(){ ENCODER_LIST=$(find_things encoder ENC libavcodec/allcodecs.c) DECODER_LIST=$(find_things decoder DEC libavcodec/allcodecs.c) +HWACCEL_LIST=$(find_things hwaccel HWACCEL libavcodec/allcodecs.c) PARSER_LIST=$(find_things parser PARSER libavcodec/allcodecs.c) BSF_LIST=$(find_things bsf BSF libavcodec/allcodecs.c) MUXER_LIST=$(find_things muxer _MUX libavformat/allformats.c) @@ -1249,6 +1268,7 @@ FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c) enable $ARCH_EXT_LIST \ $DECODER_LIST \ $ENCODER_LIST \ + $HWACCEL_LIST \ $PARSER_LIST \ $BSF_LIST \ $DEMUXER_LIST \ @@ -1287,7 +1307,7 @@ for opt do --enable-*=*|--disable-*=*) eval $(echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/') case "$thing" in - encoder|decoder|muxer|demuxer|parser|bsf|protocol|filter) $action ${optval}_${thing} ;; + encoder|decoder|hwaccel|muxer|demuxer|parser|bsf|protocol|filter) $action ${optval}_${thing} ;; *) die_unknown "$opt" ;; esac ;; @@ -1616,6 +1636,7 @@ case $target_os in SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base' objformat="win32" enable dos_paths + check_cflags -fno-common if ! enabled x86_64; then check_cpp_condition _mingw.h "(__MINGW32_MAJOR_VERSION > 3) || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" || die "ERROR: MinGW runtime version must be >= 3.15." @@ -1634,6 +1655,7 @@ case $target_os in SHFLAGS='-shared -Wl,--enable-auto-image-base' objformat="win32" enable dos_paths + check_cflags -fno-common ;; *-dos|freedos|opendos) disable ffplay ffserver @@ -1672,6 +1694,8 @@ case $target_os in SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib' enable dos_paths ;; + gnu/kfreebsd) + ;; *) die "Unknown OS '$target_os'." @@ -1714,22 +1738,20 @@ EOF fi -if ! enabled gpl; then - die_gpl_disabled(){ - name=$1 - shift - enabled_any $@ && die "$name is under GPL and --enable-gpl is not specified." - } - die_gpl_disabled "The Postprocessing code" postproc - die_gpl_disabled "libx264" libx264 - die_gpl_disabled "libxvidcore" libxvid - die_gpl_disabled "FAAD2" libfaad2 - die_gpl_disabled "The X11 grabber" x11grab -fi +die_license_disabled() { + enabled $1 || { enabled $2 && die "$2 is $1 and --enable-$1 is not specified."; } +} + +die_license_disabled gpl libfaad2 +die_license_disabled gpl libx264 +die_license_disabled gpl libxvid +die_license_disabled gpl postproc +die_license_disabled gpl x11grab + +die_license_disabled nonfree libamr_nb +die_license_disabled nonfree libamr_wb +die_license_disabled nonfree libfaac -if ! enabled nonfree && enabled_any libamr_nb libamr_wb; then - die "libamr is nonfree and --enable-nonfree is not specified." -fi check_deps $ARCH_EXT_LIST @@ -1787,7 +1809,7 @@ if test $cpu != "generic"; then Cell|CELL|cell) add_cflags -mcpu=cell warn_altivec disabled Cell - enable ppc64 + enable ppc64 ldbrx ;; # targets that do NOT support conditional mov (cmov) i[345]86|pentium|pentium-mmx|k6|k6-[23]|winchip-c6|winchip2|c3) @@ -1822,6 +1844,9 @@ if test $cpu != "generic"; then ev4|ev45|ev5|ev56|pca56|ev6|ev67) enabled ccc && add_cflags -arch $cpu || add_cflags -mcpu=$cpu ;; + bf*) + add_cflags -mcpu=$cpu + ;; *) echo "WARNING: Unknown CPU \"$cpu\", ignored." ;; @@ -1887,6 +1912,7 @@ fi enabled ppc && check_asm dcbzl '"dcbzl 0, 1"' enabled ppc && check_asm ppc4xx '"maclhw r10, r11, r12"' +enabled ppc && check_asm xform_asm '"lwzx 0, %y0" :: "Z"(*(int*)0)' # check for SIMD availability @@ -1953,6 +1979,7 @@ check_func memalign check_func mkstemp check_func posix_memalign check_func_headers io.h setmode +check_func_headers lzo/lzo1x.h lzo1x_999_compress check_func_headers windows.h GetProcessTimes check_func_headers windows.h VirtualAlloc @@ -2002,6 +2029,7 @@ for thread in $THREADS_LIST; do done check_lib math.h sin -lm +check_lib va/va.h vaInitialize -lva # test for C99 functions in math.h for func in llrint lrint lrintf round roundf truncf; do @@ -2013,7 +2041,7 @@ done # these are off by default, so fail if requested and not available enabled avisynth && require2 vfw32 "windows.h vfw.h" AVIFileInit -lvfw32 -enabled libamr_nb && require libamrnb amrnb/interf_dec.h Speech_Decode_Frame_init -lamrnb -lm +enabled libamr_nb && require libamrnb amrnb/interf_dec.h Decoder_Interface_init -lamrnb -lm enabled libamr_wb && require libamrwb amrwb/dec_if.h D_IF_init -lamrwb -lm enabled libdirac && add_cflags $(pkg-config --cflags dirac) && require libdirac libdirac_decoder/dirac_parser.h dirac_decoder_init -ldirac_decoder && @@ -2135,6 +2163,8 @@ check_header soundcard.h check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound +check_lib2 jack/jack.h jack_client_open -ljack + # deal with the X11 frame grabber enabled x11grab && check_header X11/Xlib.h && @@ -2226,6 +2256,7 @@ check_asm asmalign_pot '".align 3"' enabled_any $DECODER_LIST && enable decoders enabled_any $ENCODER_LIST && enable encoders +enabled_any $HWACCEL_LIST && enable hwaccels enabled_any $BSF_LIST && enable bsfs enabled_any $DEMUXER_LIST && enable demuxers enabled_any $MUXER_LIST && enable muxers @@ -2241,6 +2272,7 @@ check_deps $CONFIG_LIST \ $HAVE_LIST \ $DECODER_LIST \ $ENCODER_LIST \ + $HWACCEL_LIST \ $PARSER_LIST \ $BSF_LIST \ $DEMUXER_LIST \ @@ -2262,6 +2294,7 @@ if test "$extra_version" != ""; then echo "version string suffix $extra_version" fi echo "big-endian ${bigendian-no}" +echo "runtime cpu detection ${runtime_cpudetect-no}" if enabled x86; then echo "yasm ${yasm-no}" echo "MMX enabled ${mmx-no}" @@ -2337,7 +2370,7 @@ echo "zlib enabled ${zlib-no}" echo "bzlib enabled ${bzlib-no}" echo -for type in decoder encoder parser demuxer muxer protocol filter bsf indev outdev; do +for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do echo "Enabled ${type}s:" eval list=\$$(toupper $type)_LIST for part in $list; do @@ -2464,6 +2497,7 @@ print_config CONFIG_ $TMPH config.mak $CONFIG_LIST \ $CONFIG_EXTRA \ $DECODER_LIST \ $ENCODER_LIST \ + $HWACCEL_LIST \ $PARSER_LIST \ $BSF_LIST \ $DEMUXER_LIST \