X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=165aa8075d68e5941d4a696c267592108ed54cf6;hb=932cc6496ef6ab0e589ea51d3adefe5b7d7f1e2a;hp=acc74f2a6d6891c07e9a6a1b16314c012acc9ed8;hpb=2dd464868c64fa21a6e3bd63ad364ff12999c7d0;p=ffmpeg diff --git a/configure b/configure index acc74f2a6d6..165aa8075d6 100755 --- a/configure +++ b/configure @@ -188,6 +188,7 @@ External library support: themselves, not all their features will necessarily be usable by Libav. --enable-avisynth video frameserver + --enable-avxsynth Linux version of AviSynth --enable-bzlib bzip2 compression [autodetect] --enable-frei0r video filtering plugins --enable-gnutls crypto @@ -283,7 +284,6 @@ Toolchain options: --extra-libs=ELIBS add ELIBS [$ELIBS] --extra-version=STRING version string suffix [] --optflags=OPTFLAGS override optimization-related compiler flags - --build-suffix=SUFFIX library name suffix [] --enable-pic build position-independent code --enable-thumb compile for Thumb instruction set --enable-lto use link-time optimization @@ -429,7 +429,7 @@ filter(){ pat=$1 shift for v; do - eval "case $v in $pat) echo $v ;; esac" + eval "case $v in $pat) printf '%s ' $v ;; esac" done } @@ -437,7 +437,7 @@ filter_out(){ pat=$1 shift for v; do - eval "case $v in $pat) ;; *) echo $v ;; esac" + eval "case $v in $pat) ;; *) printf '%s ' $v ;; esac" done } @@ -716,6 +716,10 @@ add_cflags(){ append CFLAGS $($cflags_filter "$@") } +add_cflags_headers(){ + append CFLAGS_HEADERS $($cflags_filter "$@") +} + add_asflags(){ append ASFLAGS $($asflags_filter "$@") } @@ -1010,11 +1014,12 @@ check_lib(){ check_pkg_config(){ log check_pkg_config "$@" - pkg="$1" + pkg_version="$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 $pkg_version || return pkg_cflags=$($pkg_config --cflags $pkg_config_flags $pkg) pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && @@ -1099,17 +1104,18 @@ check_compile_assert(){ require(){ log require "$@" - name="$1" + name_version="$1" headers="$2" func="$3" shift 3 - check_lib "$headers" $func "$@" || die "ERROR: $name not found" + check_lib "$headers" $func "$@" || die "ERROR: $name_version not found" } require_pkg_config(){ log require_pkg_config "$@" - pkg="$1" - check_pkg_config "$@" || die "ERROR: $pkg not found" + pkg_version="$1" + pkg="${1%% *}" + check_pkg_config "$@" || die "ERROR: $pkg_version not found" add_cflags $(get_safe "${pkg}_cflags") add_extralibs $(get_safe "${pkg}_libs") } @@ -1173,7 +1179,7 @@ apply(){ cp_if_changed(){ cmp -s "$1" "$2" && { test "$quiet" != "yes" && echo "$2 is unchanged"; } && return mkdir -p "$(dirname $2)" - $cp_f "$1" "$2" + cp -f "$1" "$2" } # CONFIG_LIST contains configurable options, while HAVE_LIST is for @@ -1267,6 +1273,7 @@ EXTERNAL_LIBRARY_LIST=" $EXTERNAL_LIBRARY_NONFREE_LIST $EXTERNAL_LIBRARY_VERSION3_LIST avisynth + avxsynth bzlib frei0r gnutls @@ -1349,8 +1356,8 @@ SUBSYSTEM_LIST=" rdft " +# COMPONENT_LIST needs to come last to ensure correct dependency checking CONFIG_LIST=" - $COMPONENT_LIST $EXAMPLE_LIST $EXTERNAL_LIBRARY_LIST $HWACCEL_LIBRARY_LIST @@ -1366,6 +1373,7 @@ CONFIG_LIST=" thumb valgrind_backtrace xmm_clobber_test + $COMPONENT_LIST " THREADS_LIST=" @@ -1671,8 +1679,6 @@ HAVE_LIST=" dos_paths dxva2_lib libc_msvcrt - libdc1394_1 - libdc1394_2 MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS sdl section_data_rel_ro @@ -1680,7 +1686,6 @@ HAVE_LIST=" vaapi_drm vaapi_x11 vdpau_x11 - xlib " # options emitted with CONFIG_ prefix but not available on the command line @@ -1700,7 +1705,6 @@ CONFIG_EXTRA=" flacdsp fmtconvert g722dsp - gcrypt gmp golomb gplv3 @@ -1710,6 +1714,7 @@ CONFIG_EXTRA=" h264parse h264pred h264qpel + hevc_ps hpeldsp huffman huffyuvdsp @@ -1729,6 +1734,7 @@ CONFIG_EXTRA=" mpeg_er mpegaudio mpegaudiodsp + mpegaudioheader mpegvideo mpegvideoenc mss34dsp @@ -1791,7 +1797,6 @@ CMDLINE_SET=" ar arch as - build_suffix cc objcc cpu @@ -1908,12 +1913,13 @@ error_resilience_select="me_cmp" faandct_deps="faan fdctdsp" faanidct_deps="faan idctdsp" h264dsp_select="startcode" +hevc_ps_select="golomb" intrax8_select="blockdsp idctdsp" mdct_select="fft" rdft_select="fft" me_cmp_select="fdctdsp idctdsp pixblockdsp" mpeg_er_select="error_resilience" -mpegaudio_select="mpegaudiodsp" +mpegaudio_select="mpegaudiodsp mpegaudioheader" mpegaudiodsp_select="dct" mpegvideo_select="blockdsp hpeldsp idctdsp me_cmp mpeg_er videodsp" mpegvideoenc_select="me_cmp mpegvideo pixblockdsp qpeldsp" @@ -1965,13 +1971,13 @@ eamad_decoder_select="aandcttables blockdsp bswapdsp idctdsp mpegvideo" eatgq_decoder_select="aandcttables idctdsp" eatqi_decoder_select="aandcttables blockdsp bswapdsp idctdsp" exr_decoder_deps="zlib" -ffv1_decoder_select="golomb rangecoder" +ffv1_decoder_select="rangecoder" ffv1_encoder_select="rangecoder" ffvhuff_decoder_select="huffyuv_decoder" ffvhuff_encoder_select="huffyuv_encoder" fic_decoder_select="golomb" -flac_decoder_select="flacdsp golomb" -flac_encoder_select="bswapdsp flacdsp golomb lpc" +flac_decoder_select="flacdsp" +flac_encoder_select="bswapdsp flacdsp lpc" flashsv_decoder_deps="zlib" flashsv_encoder_deps="zlib" flashsv2_decoder_deps="zlib" @@ -1992,7 +1998,7 @@ h264_decoder_suggest="error_resilience" hap_decoder_select="snappy texturedsp" hap_encoder_deps="libsnappy" hap_encoder_select="texturedspenc" -hevc_decoder_select="bswapdsp cabac golomb videodsp" +hevc_decoder_select="bswapdsp cabac hevc_ps videodsp" huffyuv_decoder_select="bswapdsp huffyuvdsp" huffyuv_encoder_select="bswapdsp huffman huffyuvencdsp" iac_decoder_select="imc_decoder" @@ -2001,12 +2007,10 @@ indeo3_decoder_select="hpeldsp" indeo4_decoder_select="ividsp" indeo5_decoder_select="ividsp" interplay_video_decoder_select="hpeldsp" -jpegls_decoder_select="golomb mjpeg_decoder" -jpegls_encoder_select="golomb" +jpegls_decoder_select="mjpeg_decoder" jv_decoder_select="blockdsp" lagarith_decoder_select="huffyuvdsp" ljpeg_encoder_select="aandcttables idctdsp jpegtables" -loco_decoder_select="golomb" magicyuv_decoder_select="huffyuvdsp" mdec_decoder_select="blockdsp idctdsp mpegvideo" metasound_decoder_select="lsp mdct sinewin" @@ -2014,8 +2018,6 @@ mimic_decoder_select="blockdsp bswapdsp hpeldsp idctdsp" mjpeg_decoder_select="blockdsp hpeldsp idctdsp jpegtables" mjpeg_encoder_select="aandcttables jpegtables mpegvideoenc" mjpegb_decoder_select="mjpeg_decoder" -mjpeg_vaapi_encoder_deps="VAEncPictureParameterBufferJPEG" -mjpeg_vaapi_encoder_select="vaapi_encode jpegtables" mlp_decoder_select="mlp_parser" motionpixels_decoder_select="bswapdsp" mp1_decoder_select="mpegaudio" @@ -2044,7 +2046,7 @@ 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 mpeg_er mpegvideo vc1_decoder" +mss2_decoder_select="error_resilience mpeg_er mpegvideo qpeldsp vc1_decoder" mts2_decoder_select="mss34dsp" mxpeg_decoder_select="mjpeg_decoder" nellymoser_decoder_select="mdct sinewin" @@ -2070,7 +2072,6 @@ rv20_encoder_select="h263_encoder" rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo rv34dsp videodsp" rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo rv34dsp videodsp" screenpresso_decoder_deps="zlib" -shorten_decoder_select="golomb" sipr_decoder_select="lsp" sp5x_decoder_select="mjpeg_decoder" svq1_decoder_select="hpeldsp" @@ -2138,10 +2139,7 @@ h264_d3d11va_hwaccel_deps="d3d11va" h264_d3d11va_hwaccel_select="h264_decoder" h264_dxva2_hwaccel_deps="dxva2" h264_dxva2_hwaccel_select="h264_decoder" -h264_mmal_decoder_deps="mmal" -h264_mmal_decoder_select="mmal" h264_mmal_hwaccel_deps="mmal" -h264_omx_encoder_deps="omx" h264_qsv_hwaccel_deps="libmfx" h264_vaapi_hwaccel_deps="vaapi" h264_vaapi_hwaccel_select="h264_decoder" @@ -2164,15 +2162,12 @@ mpeg2_d3d11va_hwaccel_deps="d3d11va" mpeg2_d3d11va_hwaccel_select="mpeg2video_decoder" mpeg2_dxva2_hwaccel_deps="dxva2" mpeg2_dxva2_hwaccel_select="mpeg2video_decoder" -mpeg2_mmal_decoder_deps="mmal" -mpeg2_mmal_decoder_select="mmal" mpeg2_mmal_hwaccel_deps="mmal" mpeg2_qsv_hwaccel_deps="libmfx" mpeg2_vaapi_hwaccel_deps="vaapi" mpeg2_vaapi_hwaccel_select="mpeg2video_decoder" mpeg2_vdpau_hwaccel_deps="vdpau" mpeg2_vdpau_hwaccel_select="mpeg2video_decoder" -mpeg4_omx_encoder_deps="omx" mpeg4_vaapi_hwaccel_deps="vaapi" mpeg4_vaapi_hwaccel_select="mpeg4_decoder" mpeg4_vdpau_hwaccel_deps="vdpau" @@ -2181,13 +2176,13 @@ vc1_d3d11va_hwaccel_deps="d3d11va" vc1_d3d11va_hwaccel_select="vc1_decoder" vc1_dxva2_hwaccel_deps="dxva2" vc1_dxva2_hwaccel_select="vc1_decoder" -vc1_mmal_decoder_deps="mmal" -vc1_mmal_decoder_select="mmal" vc1_mmal_hwaccel_deps="mmal" +vc1_qsv_hwaccel_deps="libmfx" vc1_vaapi_hwaccel_deps="vaapi" vc1_vaapi_hwaccel_select="vc1_decoder" vc1_vdpau_hwaccel_deps="vdpau" vc1_vdpau_hwaccel_select="vc1_decoder" +vp8_qsv_hwaccel_deps="libmfx" vp8_vaapi_hwaccel_deps="vaapi VAPictureParameterBufferVP8" vp8_vaapi_hwaccel_select="vp8_decoder" wmv3_d3d11va_hwaccel_select="vc1_d3d11va_hwaccel" @@ -2200,6 +2195,7 @@ nvenc_deps_any="dlopen LoadLibrary" nvenc_extralibs='$ldl' omx_deps="dlopen pthreads" omx_extralibs='$ldl' +omx_rpi_select="omx" qsvdec_select="qsv" qsvenc_select="qsv" vaapi_encode_deps="vaapi" @@ -2207,32 +2203,43 @@ vaapi_encode_deps="vaapi" hwupload_cuda_filter_deps="cuda" scale_npp_filter_deps="cuda libnpp" +h264_mmal_decoder_deps="mmal" h264_nvenc_encoder_deps="nvenc" +h264_omx_encoder_deps="omx" h264_qsv_decoder_deps="libmfx" h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec h264_qsv_hwaccel" h264_qsv_encoder_deps="libmfx" h264_qsv_encoder_select="qsvenc" h264_vaapi_encoder_deps="VAEncPictureParameterBufferH264" h264_vaapi_encoder_select="vaapi_encode golomb" - hevc_nvenc_encoder_deps="nvenc" hevc_qsv_decoder_deps="libmfx" -hevc_qsv_encoder_deps="libmfx" hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser hevc_qsv_hwaccel qsvdec" -hevc_qsv_encoder_select="qsvenc" +hevc_qsv_encoder_deps="libmfx" +hevc_qsv_encoder_select="hevc_ps qsvenc" hevc_vaapi_encoder_deps="VAEncPictureParameterBufferHEVC" hevc_vaapi_encoder_select="vaapi_encode golomb" +mjpeg_vaapi_encoder_deps="VAEncPictureParameterBufferJPEG" +mjpeg_vaapi_encoder_select="vaapi_encode jpegtables" +mpeg2_mmal_decoder_deps="mmal" mpeg2_qsv_decoder_deps="libmfx" mpeg2_qsv_decoder_select="qsvdec mpeg2_qsv_hwaccel mpegvideo_parser" mpeg2_qsv_encoder_deps="libmfx" mpeg2_qsv_encoder_select="qsvenc" +mpeg4_omx_encoder_deps="omx" +vc1_mmal_decoder_deps="mmal" +vc1_qsv_decoder_deps="libmfx" +vc1_qsv_decoder_select="qsvdec vc1_qsv_hwaccel vc1_parser" +vp8_qsv_decoder_deps="libmfx" +vp8_qsv_decoder_select="qsvdec vp8_qsv_hwaccel vp8_parser" -nvenc_h264_encoder_deps="nvenc" -nvenc_hevc_encoder_deps="nvenc" +nvenc_h264_encoder_select="h264_nvenc_encoder" +nvenc_hevc_encoder_select="hevc_nvenc_encoder" # parsers h264_parser_select="golomb h264dsp h264parse" -hevc_parser_select="golomb" +hevc_parser_select="hevc_ps" +mpegaudio_parser_select="mpegaudioheader" mpegvideo_parser_select="mpegvideo" mpeg4video_parser_select="error_resilience h263dsp mpegvideo qpeldsp" vc1_parser_select="vc1dsp" @@ -2241,6 +2248,10 @@ vc1_parser_select="vc1dsp" mjpeg2jpeg_bsf_select="jpegtables" # external libraries +avisynth_deps="LoadLibrary" +avxsynth_deps="dlopen" +avisynth_demuxer_deps_any="avisynth avxsynth" +avisynth_demuxer_select="riffdec" libdcadec_decoder_deps="libdcadec" libfaac_encoder_deps="libfaac" libfaac_encoder_select="audio_frame_queue" @@ -2255,7 +2266,7 @@ libilbc_decoder_deps="libilbc" libilbc_encoder_deps="libilbc" libkvazaar_encoder_deps="libkvazaar" libmp3lame_encoder_deps="libmp3lame" -libmp3lame_encoder_select="audio_frame_queue" +libmp3lame_encoder_select="audio_frame_queue mpegaudioheader" libopencore_amrnb_decoder_deps="libopencore_amrnb" libopencore_amrnb_encoder_deps="libopencore_amrnb" libopencore_amrnb_encoder_select="audio_frame_queue" @@ -2285,12 +2296,13 @@ libvpx_vp8_encoder_deps="libvpx" libvpx_vp9_decoder_deps="libvpx" libvpx_vp9_encoder_deps="libvpx" libwavpack_encoder_deps="libwavpack" +libwavpack_encoder_select="audio_frame_queue" libwebp_encoder_deps="libwebp" libx262_encoder_deps="libx262" libx264_encoder_deps="libx264" libx265_encoder_deps="libx265" libxavs_encoder_deps="libxavs" -libxvid_encoder_deps="libxvid" +libxvid_encoder_deps="libxvid mkstemp" # demuxers / muxers ac3_demuxer_select="ac3_parser" @@ -2299,8 +2311,6 @@ asf_muxer_select="riffenc" asf_stream_muxer_select="asf_muxer" avi_demuxer_select="iso_media riffdec" avi_muxer_select="riffenc" -avisynth_demuxer_deps="avisynth" -avisynth_demuxer_select="riffdec" caf_demuxer_select="iso_media riffdec" dash_muxer_select="mp4_muxer" dirac_demuxer_select="dirac_parser" @@ -2323,6 +2333,7 @@ mov_demuxer_select="iso_media riffdec" mov_demuxer_suggest="zlib" mov_muxer_select="iso_media riffenc rtpenc_chain" mp3_demuxer_select="mpegaudio_parser" +mp3_muxer_select="mpegaudioheader" mp4_muxer_select="mov_muxer" mpegts_demuxer_select="iso_media" mpegts_muxer_select="adts_muxer latm_muxer" @@ -2360,7 +2371,8 @@ xwma_demuxer_select="riffdec" # indevs / outdevs alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp" alsa_outdev_deps="alsa_asoundlib_h" -avfoundation_indev_deps="AVFoundation_AVFoundation_h" +avfoundation_indev_deps="AVFoundation_AVFoundation_h objc_arc pthreads" +avfoundation_indev_extralibs="-framework Foundation -framework AVFoundation -framework CoreVideo -framework CoreMedia" 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" dv1394_indev_select="dv_demuxer" @@ -2381,7 +2393,7 @@ xcbgrab_indev_deps="libxcb" # protocols ffrtmpcrypt_protocol_deps="!librtmp_protocol" -ffrtmpcrypt_protocol_deps_any="gcrypt gmp openssl" +ffrtmpcrypt_protocol_deps_any="gmp openssl" ffrtmpcrypt_protocol_select="tcp_protocol" ffrtmphttp_protocol_deps="!librtmp_protocol" ffrtmphttp_protocol_select="http_protocol" @@ -2420,6 +2432,7 @@ unix_protocol_deps="sys_un_h" unix_protocol_select="network" # filters +asyncts_filter_deps="avresample" blackframe_filter_deps="gpl" boxblur_filter_deps="gpl" bs2b_filter_deps="libbs2b" @@ -2434,6 +2447,7 @@ frei0r_src_filter_extralibs='$ldl' hdcd_filter_deps="libhdcd" hqdn3d_filter_deps="gpl" interlace_filter_deps="gpl" +movie_filter_deps="avcodec avformat" ocv_filter_deps="libopencv" resample_filter_deps="avresample" scale_filter_deps="swscale" @@ -2447,8 +2461,8 @@ encode_audio_example_deps="avcodec avutil" encode_video_example_deps="avcodec avutil" filter_audio_example_deps="avfilter avutil" metadata_example_deps="avformat avutil" -output_example_deps="avcodec avformat avutil swscale" -qsvdec_example_deps="avcodec avutil libmfx h264_qsv_decoder vaapi_x11" +output_example_deps="avcodec avformat avresample avutil swscale" +qsvdec_example_deps="avcodec avutil libmfx h264_qsv_decoder" transcode_aac_example_deps="avcodec avformat avresample" # libraries, in linking order @@ -2491,7 +2505,6 @@ shlibdir_default="$libdir_default" ar_default="ar" cc_default="gcc" host_cc_default="gcc" -cp_f="cp -f" ln_s="ln -s -f" nm_default="nm -g" objformat="elf" @@ -2530,11 +2543,10 @@ enable d3d11va dxva2 vda vdpau SHFLAGS='-shared -Wl,-soname,$$(@F)' LIBPREF="lib" LIBSUF=".a" -FULLNAME='$(NAME)$(BUILDSUF)' -LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)' +LIBNAME='$(LIBPREF)$(NAME)$(LIBSUF)' SLIBPREF="lib" SLIBSUF=".so" -SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)' +SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)' SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)' SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' @@ -2806,7 +2818,7 @@ case "$toolchain" in ;; *-tsan) cc_default="${toolchain%-tsan}" - add_cflags -fsanitize=thread -pie + add_cflags -fsanitize=thread -fPIE add_ldflags -fsanitize=thread -pie case "$toolchain" in gcc-tsan) @@ -2894,7 +2906,7 @@ test -n "$cross_prefix" && enable cross_compile if enabled cross_compile; then test -n "$arch" && test -n "$target_os" || - die "Must specify target arch and OS when cross-compiling" + die "Must specify target arch (--arch) and OS (--target-os) when cross-compiling" fi ar_default="${cross_prefix}${ar_default}" @@ -3033,7 +3045,6 @@ msvc_common_flags(){ -mthumb) ;; -march=*) ;; -lz) echo zlib.lib ;; - -lavifil32) echo vfw32.lib ;; -lavicap32) echo vfw32.lib user32.lib ;; -lx264) echo libx264.lib ;; -l*) echo ${flag#-l}.lib ;; @@ -3050,7 +3061,7 @@ msvc_flags(){ -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \ -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \ -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \ - -wd4273 -wd4554 -wd4701 ;; + -wd4273 -wd4554 -wd4701 -wd4703 ;; esac done } @@ -3845,8 +3856,8 @@ case $target_os in enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress add_ldflags -Wl,-dynamic,-search_paths_first SLIBSUF=".dylib" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)' + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)' objformat="macho" enabled x86_64 && objformat="macho64" enabled_any pic shared || @@ -3874,8 +3885,8 @@ case $target_os in shlibdir_default="$bindir_default" SLIBPREF="" SLIBSUF=".dll" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' SLIB_EXTRA_CMD=-'sed -e "s/ @[^ ]*//" $$(@:$(SLIBSUF)=.orig.def) > $$(@:$(SLIBSUF)=.def); $(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS= @@ -3899,8 +3910,8 @@ case $target_os in shlibdir_default="$bindir_default" SLIBPREF="" SLIBSUF=".dll" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' SLIB_CREATE_DEF_CMD='$(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS= @@ -3916,12 +3927,12 @@ case $target_os in shlibdir_default="$bindir_default" SLIBPREF="cyg" SLIBSUF=".dll" - SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' - SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' + SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)' + SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS= - SLIB_INSTALL_EXTRA_LIB='lib$(FULLNAME).dll.a' - SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a' + SLIB_INSTALL_EXTRA_LIB='lib$(NAME).dll.a' + SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(NAME).dll.a' objformat="win32" enable dos_paths ;; @@ -3986,17 +3997,6 @@ case $target_os in ;; minix) ;; - plan9) - add_cppflags -D_C99_SNPRINTF_EXTENSION \ - -D_REENTRANT_SOURCE \ - -D_RESEARCH_SOURCE \ - -DFD_SETSIZE=96 \ - -DHAVE_SOCK_OPTS - add_compat strtod.o strtod=avpriv_strtod - network_extralibs='-lbsd' - exeobjs=compat/plan9/main.o - cp_f='cp' - ;; none) ;; *) @@ -4613,17 +4613,17 @@ ldexpf_args=2 powf_args=2 for func in $MATH_FUNCS; do - eval check_mathfunc $func \${${func}_args:-1} + eval check_mathfunc $func \${${func}_args:-1} $LIBM done # these are off by default, so fail if requested and not available -enabled avisynth && { check_lib "avisynth/avisynth_c.h windows.h" LoadLibrary || - check_lib "avxsynth/avxsynth_c.h dlfcn.h" dlopen -ldl || - die "ERROR: LoadLibrary/dlopen not found, or avisynth header not found"; } -enabled cuda && check_lib cuda.h cuInit -lcuda +enabled avisynth && { check_header avisynth/avisynth_c.h || die "ERROR: avisynth/avisynth_c.h header not found"; } +enabled avxsynth && require avxsynth "avxsynth/avxsynth_c.h dlfcn.h" dlopen -ldl +enabled cuda && require cuda cuda.h cuInit -lcuda enabled frei0r && { check_header frei0r.h || die "ERROR: frei0r.h header not found"; } enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init enabled libbs2b && require_pkg_config libbs2b bs2b.h bs2b_open +enabled libdc1394 && require_pkg_config libdc1394-2 dc1394/dc1394.h dc1394_new enabled libdcadec && require libdcadec libdcadec/dca_context.h dcadec_context_create -ldcadec enabled libfaac && require libfaac "stdint.h faac.h" faacEncGetVersion -lfaac enabled libfdk_aac && require_pkg_config fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen @@ -4648,7 +4648,7 @@ enabled libopus && require_pkg_config opus opus_multistream.h opus_mul enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init -enabled libsnappy && require snappy snappy-c.h snappy_compress -lsnappy +enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy enabled libspeex && require_pkg_config speex speex/speex.h speex_decoder_init -lspeex enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame @@ -4689,19 +4689,16 @@ enabled libx265 && require_pkg_config x265 x265.h x265_api_get && enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode -lxavs enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore 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 ; - add_extralibs -L/opt/vc/lib/ -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host ; - check_lib interface/mmal/mmal.h mmal_port_connect ; } - check_lib interface/mmal/mmal.h mmal_port_connect ; } || - die "ERROR: mmal not found"; } -enabled mmal && check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS" -enabled omx_rpi && enable omx -enabled omx && { check_header OMX_Core.h || - { ! enabled cross_compile && enabled omx_rpi && { - add_cflags -isystem/opt/vc/include/IL ; } - check_header OMX_Core.h ; } || + { ! 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 && + add_ldflags -L/opt/vc/lib/ && + check_lib interface/mmal/mmal.h mmal_port_connect -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host; } || + die "ERROR: mmal not found" && + check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; } +enabled omx_rpi && { check_header OMX_Core.h || + { ! enabled cross_compile && add_cflags -isystem/opt/vc/include/IL && check_header OMX_Core.h ; } || die "ERROR: OpenMAX IL headers not found"; } +enabled omx && { check_header OMX_Core.h || die "ERROR: OpenMAX IL headers not found"; } enabled openssl && { { check_pkg_config openssl openssl/ssl.h OPENSSL_init_ssl || check_pkg_config openssl openssl/ssl.h SSL_library_init; } && { add_cflags $openssl_cflags && add_extralibs $openssl_libs; }|| @@ -4710,19 +4707,7 @@ enabled openssl && { { check_pkg_config openssl openssl/ssl.h OPENSSL_ check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || die "ERROR: openssl not found"; } -if enabled gnutls; then - { check_lib gmp.h mpz_export -lgmp && enable gmp; } || - { check_lib gcrypt.h gcry_mpi_new -lgcrypt && enable gcrypt; } -fi - -# libdc1394 check -if enabled libdc1394; then - { require_pkg_config libdc1394-2 dc1394/dc1394.h dc1394_new && - enable libdc1394_2; } || - { check_lib libdc1394/dc1394_control.h dc1394_create_handle -ldc1394_control -lraw1394 && - enable libdc1394_1; } || - die "ERROR: No version of libdc1394 found " -fi +enabled gnutls && check_lib gmp.h mpz_export -lgmp && enable gmp if enabled nvenc; then check_header nvEncodeAPI.h || die "ERROR: nvEncodeAPI.h not found." @@ -4743,10 +4728,7 @@ check_header linux/fb.h check_header linux/videodev2.h check_struct linux/videodev2.h "struct v4l2_frmivalenum" discrete -check_header AVFoundation/AVFoundation.h && - check_objcflags -fobjc-arc && - add_extralibs -framework Foundation -framework AVFoundation -framework CoreVideo -framework CoreMedia || - disable AVFoundation_AVFoundation_h +check_header AVFoundation/AVFoundation.h check_header sys/videoio.h @@ -4797,8 +4779,8 @@ if enabled libxcb; then enabled libxcb_xfixes && die "ERROR: libxcb_xfixes not found"; } && enable libxcb_xfixes - add_cflags "$xcb_shape_cflags $xcb_event_cflags $xcb_shm_cflags $xcb_xfixes_cflags" - add_extralibs "$xcb_shape_libs $xcb_event_libs $xcb_shm_libs $xcb_xfixes_libs" + add_cflags "$xcb_shape_cflags $xcb_shm_cflags $xcb_xfixes_cflags" + add_extralibs "$xcb_shape_libs $xcb_shm_libs $xcb_xfixes_libs" fi enabled vaapi && require vaapi va/va.h vaInitialize -lva @@ -4811,18 +4793,16 @@ enabled vaapi && check_lib "va/va.h va/va_drm.h" vaGetDisplayDRM -lva -lva-drm && enable vaapi_drm +enabled vaapi && + check_lib "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 -lX11 && + enable vaapi_x11 + enabled vdpau && check_cpp_condition vdpau/vdpau.h "defined VDP_DECODER_PROFILE_MPEG4_PART2_ASP" || disable vdpau -enabled_any vaapi vdpau && check_lib X11/Xlib.h XOpenDisplay -lX11 && enable xlib - -enabled vaapi && enabled xlib && - check_lib "va/va.h va/va_x11.h" vaGetDisplay -lva -lva-x11 && - enable vaapi_x11 - -enabled vdpau && enabled xlib && - check_lib "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau && +enabled vdpau && + check_lib "vdpau/vdpau.h vdpau/vdpau_x11.h" vdp_device_create_x11 -lvdpau -lX11 && enable vdpau_x11 enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel" @@ -4838,8 +4818,12 @@ check_cflags -Wtype-limits check_cflags -Wundef check_cflags -Wmissing-prototypes check_cflags -Wstrict-prototypes -enabled extra_warnings && check_cflags -Winline -enabled extra_warnings && check_cflags -Wcast-qual + +if enabled extra_warnings; then + check_cflags -Wcast-qual + check_cflags -Wextra + check_cflags -Wpedantic +fi check_disable_warning(){ warning_flag=-W${1#-Wno-} @@ -4851,6 +4835,16 @@ check_disable_warning -Wno-switch check_disable_warning -Wno-format-zero-length check_disable_warning -Wno-pointer-sign +check_disable_warning_headers(){ + warning_flag=-W${1#-Wno-} + test_cflags $warning_flag && add_cflags_headers $1 +} + +check_disable_warning_headers -Wno-deprecated-declarations +check_disable_warning_headers -Wno-unused-variable + +check_objcflags -fobjc-arc && enable objc_arc + # add some linker flags check_ldflags -Wl,--warn-common check_ldflags -Wl,-rpath-link=libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample @@ -5058,9 +5052,6 @@ case $target_os in osf1) enabled ccc && add_ldflags '-Wl,-expect_unresolved,*' ;; - plan9) - add_cppflags -Dmain=plan9_main - ;; esac enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; } @@ -5104,7 +5095,8 @@ enabled zlib && add_cppflags -DZLIB_CONST # conditional library dependencies, in linking order enabled movie_filter && prepend avfilter_deps "avformat avcodec" -enabled resample_filter && prepend avfilter_deps "avresample" +enabled_any asyncts_filter resample_filter && + prepend avfilter_deps "avresample" enabled scale_filter && prepend avfilter_deps "swscale" enabled opus_decoder && prepend avcodec_deps "avresample" @@ -5129,9 +5121,6 @@ if test "$host_cc" != "$cc"; then echo "host C library $host_libc_type" fi echo "ARCH $arch ($cpu)" -if test "$build_suffix" != ""; then - echo "build suffix $build_suffix" -fi if test "$extra_version" != ""; then echo "version string suffix $extra_version" fi @@ -5280,8 +5269,6 @@ LDEXEFLAGS=$LDEXEFLAGS SHFLAGS=$(echo $($ldflags_filter $SHFLAGS)) STRIPFLAGS=$STRIPFLAGS YASMFLAGS=$YASMFLAGS -BUILDSUF=$build_suffix -FULLNAME=$FULLNAME LIBPREF=$LIBPREF LIBSUF=$LIBSUF LIBNAME=$LIBNAME @@ -5314,11 +5301,11 @@ TARGET_EXEC=$target_exec $target_exec_args TARGET_PATH=$target_path TARGET_SAMPLES=${target_samples:-\$(SAMPLES)} CFLAGS-avplay=$sdl_cflags +CFLAGS_HEADERS=$CFLAGS_HEADERS ZLIB=$($ldflags_filter -lz) LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD EXTRALIBS=$extralibs COMPAT_OBJS=$compat_objs -EXEOBJS=$exeobjs INSTALL=install LIBTARGET=${LIBTARGET} SLIBNAME=${SLIBNAME} @@ -5433,7 +5420,7 @@ lib_version(){ pkgconfig_generate(){ name=$1 - shortname=${name#lib}${build_suffix} + shortname=${name#lib} comment=$2 version=$3 libs=$4