X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=94a66d889ed720a3b27d12f26a1a0a2fba6a40e6;hb=1490682bcb0fe359e05b85bb7198bb87be686054;hp=81769ee0f29198f97f2a679e026bead765b5ba84;hpb=3af71ac3f9f635856145503f2ace829aad813636;p=ffmpeg diff --git a/configure b/configure index 81769ee0f29..94a66d889ed 100755 --- a/configure +++ b/configure @@ -194,6 +194,7 @@ Individual component options: --disable-filters disable all filters External library support: + --disable-audiotoolbox enable AudioToolbox decoders and encoders [autodetect] --enable-avisynth enable reading of AviSynth script files [no] --disable-bzlib disable bzlib [autodetect] --enable-cuda enable dynamically linked CUDA [no] @@ -207,6 +208,7 @@ External library support: --enable-gnutls enable gnutls, needed for https support if openssl is not used [no] --disable-iconv disable iconv [autodetect] + --enable-jni enable JNI support [no] --enable-ladspa enable LADSPA audio filtering [no] --enable-libass enable libass subtitles rendering, needed for subtitles and ass filter [no] @@ -217,7 +219,6 @@ External library support: --enable-libcdio enable audio CD grabbing with libcdio [no] --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394 and libraw1394 [no] - --enable-libdcadec enable DCA decoding via libdcadec [no] --enable-libfaac enable AAC encoding via libfaac [no] --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no] --enable-libflite enable flite (voice synthesis) support via libflite [no] @@ -275,6 +276,7 @@ External library support: --enable-libzvbi enable teletext support via libzvbi [no] --disable-lzma disable lzma [autodetect] --enable-decklink enable Blackmagic DeckLink I/O support [no] + --enable-mediacodec enable Android MediaCodec support [no] --enable-mmal enable decoding via MMAL [no] --enable-netcdf enable NetCDF, needed for sofalizer filter [no] --enable-nvenc enable NVIDIA NVENC support [no] @@ -916,6 +918,25 @@ void foo(void){ __asm__ volatile($code); } EOF } +check_inline_asm_flags(){ + log check_inline_asm_flags "$@" + name="$1" + code="$2" + flags='' + shift 2 + while [ "$1" != "" ]; do + append flags $1 + shift + done; + disable $name + cat > $TMPC <4GB for extra entropy with HEASLR add_ldexeflags -Wl,--image-base,0x140000000 @@ -5107,91 +5137,21 @@ elif enabled mips; then # Enable minimum ISA based on selected options if enabled mips64; then - if enabled mips64r6; then - check_ldflags "-mips64r6" && - add_cflags "-mips64r6" && - add_asflags "-mips64r6" && - check_inline_asm mips64r6 '"dlsa $0, $0, $0, 1"' || - disable mips64r6 - fi - if disabled mips64r6 && enabled mips64r2; then - check_ldflags "-mips64r2" && - add_cflags "-mips64r2" && - add_asflags "-mips64r2" && - check_inline_asm mips64r2 '"dext $0, $0, 0, 1"' || - disable mips64r2 - fi - if disabled mips64r6 && disabled mips64r2; then - check_ldflags "-mips64" && - add_cflags "-mips64" && - add_asflags "-mips64" && - check_inline_asm mips64r1 '"daddi $0, $0, 0"' || - disable mips64r1 - fi + enabled mips64r6 && check_inline_asm_flags mips64r6 '"dlsa $0, $0, $0, 1"' '-mips64r6' + enabled mips64r2 && check_inline_asm_flags mips64r2 '"dext $0, $0, 0, 1"' '-mips64r2' + disabled mips64r6 && disabled mips64r2 && check_inline_asm_flags mips64r1 '"daddi $0, $0, 0"' '-mips64' else - if enabled mips32r6; then - check_ldflags "-mips32r6" && - add_cflags "-mips32r6" && - add_asflags "-mips32r6" && - check_inline_asm mips32r6 '"aui $0, $0, 0"' || - disable mips32r6 - fi - if disabled mips32r6 && enabled mips32r2; then - check_ldflags "-mips32r2" && - add_cflags "-mips32r2" && - add_asflags "-mips32r2" && - check_inline_asm mips32r2 '"ext $0, $0, 0, 1"' || - disable mips32r2 - fi - if disabled mips32r6 && disabled mips32r2; then - check_ldflags "-mips32" && - add_cflags "-mips32" && - add_asflags "-mips32" && - check_inline_asm mips32r1 '"addi $0, $0, 0"' || - disable mips32r1 - fi - fi - - # MIPS FPU - if enabled mipsfpu; then - check_ldflags "-mhard-float" && - add_cflags "-mhard-float" && - add_asflags "-mhard-float" && - check_inline_asm mipsfpu '"cvt.d.l $f0, $f2"' || - disable mipsfpu + enabled mips32r6 && check_inline_asm_flags mips32r6 '"aui $0, $0, 0"' '-mips32r6' + enabled mips32r5 && check_inline_asm_flags mips32r5 '"eretnc"' '-mips32r5' + enabled mips32r2 && check_inline_asm_flags mips32r2 '"ext $0, $0, 0, 1"' '-mips32r2' + disabled mips32r6 && disabled mips32r5 && disabled mips32r2 && check_inline_asm_flags mips32r1 '"addi $0, $0, 0"' '-mips32' fi - # MSA and DSP support require ISA revision level 2 or greater - if enabled mips32r2 || enabled mips64r2 || enabled mips32r6 || enabled mips64r6; then - # MSA must be used with -mfp64 and -mhard-float - if enabled mipsfpu; then - if enabled msa; then - check_ldflags "-mfp64 -mmsa" && - add_cflags "-mfp64 -mmsa" && - add_asflags "-mfp64 -mmsa" && - check_inline_asm msa '"addvi.b $w0, $w1, 1"' && - check_header msa.h || - disable msa - fi - else - disable msa - fi - - if enabled mipsdsp; then - check_ldflags "-mdsp" && - add_cflags "-mdsp" && - add_asflags "-mdsp" && - check_inline_asm mipsdsp '"addu.qb $t0, $t1, $t2"' || - disable mipsdsp - fi - if enabled mipsdspr2; then - check_ldflags "-mdspr2" && - add_cflags "-mdspr2" && - add_asflags "-mdspr2" && - check_inline_asm mipsdspr2 '"absq_s.qb $t0, $t1"' || - disable mipsdspr2 - fi - fi + enabled mipsfpu && check_inline_asm_flags mipsfpu '"cvt.d.l $f0, $f2"' '-mhard-float' + enabled mipsfpu && (enabled mips32r5 || enabled mips32r6 || enabled mips64r6) && check_inline_asm_flags mipsfpu '"cvt.d.l $f0, $f1"' '-mfp64' + enabled mipsfpu && enabled msa && check_inline_asm_flags msa '"addvi.b $w0, $w1, 1"' '-mmsa' && check_header msa.h || disable msa + enabled mipsdsp && check_inline_asm_flags mipsdsp '"addu.qb $t0, $t1, $t2"' '-mdsp' + enabled mipsdspr2 && check_inline_asm_flags mipsdspr2 '"absq_s.qb $t0, $t1"' '-mdspr2' elif enabled parisc; then @@ -5325,6 +5285,8 @@ frei0r_filter_extralibs='$ldl' frei0r_src_filter_extralibs='$ldl' ladspa_filter_extralibs='$ldl' nvenc_encoder_extralibs='$ldl' +coreimage_filter_extralibs="-framework QuartzCore -framework AppKit -framework OpenGL" +coreimagesrc_filter_extralibs="-framework QuartzCore -framework AppKit -framework OpenGL" if ! disabled network; then check_func getaddrinfo $network_extralibs @@ -5336,6 +5298,7 @@ if ! disabled network; then check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE check_type poll.h "struct pollfd" check_type netinet/sctp.h "struct sctp_event_subscribe" + check_struct "sys/socket.h" "struct msghdr" msg_flags check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len check_type netinet/in.h "struct sockaddr_in6" check_type "sys/types.h sys/socket.h" "struct sockaddr_storage" @@ -5435,6 +5398,7 @@ check_func_headers glob.h glob enabled xlib && check_func_headers "X11/Xlib.h X11/extensions/Xvlib.h" XvGetPortAttribute -lXv -lX11 -lXext +check_header AudioToolbox/AudioToolbox.h check_header direct.h check_header dirent.h check_header dlfcn.h @@ -5550,12 +5514,17 @@ enabled avfoundation_indev && { check_lib2 CoreGraphics/CoreGraphics.h CGGetActi enabled avisynth && { { check_lib2 "windows.h" LoadLibrary; } || { check_lib2 "dlfcn.h" dlopen -ldl; } || die "ERROR: LoadLibrary/dlopen not found for avisynth"; } -enabled cuda && check_lib cuda.h cuInit -lcuda +enabled cuda && { check_lib cuda.h cuInit -lcuda || + die "ERROR: CUDA not found"; } enabled chromaprint && require chromaprint chromaprint.h chromaprint_get_version -lchromaprint +enabled coreimage_filter && { check_header_objcc QuartzCore/CoreImage.h || disable coreimage_filter; } +enabled coreimagesrc_filter && { check_header_objcc QuartzCore/CoreImage.h || disable coreimagesrc_filter; } enabled decklink && { check_header DeckLinkAPI.h || die "ERROR: DeckLinkAPI.h header not found"; } enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; } enabled gmp && require2 gmp gmp.h mpz_export -lgmp enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init +enabled jni && { [ $target_os = "android" ] && check_header jni.h && enabled pthreads && + check_lib2 "dlfcn.h" dlopen -ldl; } enabled ladspa && { check_header ladspa.h || die "ERROR: ladspa.h header not found"; } enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883 enabled libass && require_pkg_config libass ass/ass.h ass_library_init @@ -5565,7 +5534,6 @@ 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 >= 0.1.0" libdcadec/dca_context.h dcadec_context_create 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 && @@ -5668,6 +5636,7 @@ enabled libzmq && require_pkg_config libzmq zmq.h zmq_ctx_new enabled libzvbi && require libzvbi libzvbi.h vbi_decoder_new -lzvbi && { check_cpp_condition libzvbi.h "VBI_VERSION_MAJOR > 0 || VBI_VERSION_MINOR > 2 || VBI_VERSION_MINOR == 2 && VBI_VERSION_MICRO >= 28" || enabled gpl || die "ERROR: libzvbi requires version 0.2.28 or --enable-gpl."; } +enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; } enabled mmal && { check_lib interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host || { ! enabled cross_compile && { add_cflags -isystem/opt/vc/include/ -isystem/opt/vc/include/interface/vmcs_host/linux -isystem/opt/vc/include/interface/vcos/pthreads -fgnu89-inline ; @@ -5681,8 +5650,8 @@ enabled mmal && enabled netcdf && require_pkg_config netcdf netcdf.h nc_inq_libvers enabled nvenc && { check_header nvEncodeAPI.h || die "ERROR: nvEncodeAPI.h not found."; } && - { check_cpp_condition nvEncodeAPI.h "NVENCAPI_MAJOR_VERSION >= 5" || - die "ERROR: NVENC API version 4 or older is not supported"; } && + { check_cpp_condition nvEncodeAPI.h "NVENCAPI_MAJOR_VERSION >= 6" || + die "ERROR: NVENC API version 5 or older is not supported"; } && { [ $target_os != cygwin ] || die "ERROR: NVENC is not supported on Cygwin currently."; } enabled openal && { { for al_libs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do check_lib 'AL/al.h' alGetError "${al_libs}" && break; done } || @@ -5760,8 +5729,8 @@ disabled securetransport || { check_func SecIdentityCreate "-Wl,-framework,CoreF check_lib2 "Security/SecureTransport.h Security/Security.h" "SSLCreateContext SecItemImport" "-Wl,-framework,CoreFoundation -Wl,-framework,Security" && enable securetransport; } -disabled schannel || { check_func_headers "windows.h Security.h" InitializeSecurityContext -DSECURITY_WIN32 -lSecur32 && - enable schannel && add_extralibs -lSecur32; } +disabled schannel || { check_func_headers "windows.h security.h" InitializeSecurityContext -DSECURITY_WIN32 -lsecur32 && + check_cpp_condition winerror.h "defined(SEC_I_CONTEXT_EXPIRED)" && enable schannel && add_extralibs -lsecur32; } makeinfo --version > /dev/null 2>&1 && enable makeinfo || disable makeinfo enabled makeinfo \ @@ -6324,6 +6293,7 @@ echo "threading support ${thread_type-no}" echo "safe bitstream reader ${safe_bitstream_reader-no}" echo "SDL support ${sdl-no}" echo "opencl enabled ${opencl-no}" +echo "JNI support ${jni-no}" echo "texi2html enabled ${texi2html-no}" echo "perl enabled ${perl-no}" echo "pod2man enabled ${pod2man-no}"