ffmpeg | branch: master | James Almer <jamr...@gmail.com> | Thu Oct 26 16:14:54 2017 -0300| [cdba33c45f79900a5dc6c5699acd4b7bdef78745] | committer: James Almer
Merge commit 'b62ed6873821c8fce8f7e2c2927ae54f86afeb22' * commit 'b62ed6873821c8fce8f7e2c2927ae54f86afeb22': configure: Better names for functions that sanitize input Merged-by: James Almer <jamr...@gmail.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cdba33c45f79900a5dc6c5699acd4b7bdef78745 --- configure | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/configure b/configure index 2e0236285e..0e1ccaac58 100755 --- a/configure +++ b/configure @@ -584,13 +584,13 @@ sanitize_var_name(){ echo $@ | sed 's/[^A-Za-z0-9_]/_/g' } -set_safe(){ +set_sanitized(){ var=$1 shift eval $(sanitize_var_name "$var")='$*' } -get_safe(){ +get_sanitized(){ eval echo \$$(sanitize_var_name "$1") } @@ -636,13 +636,13 @@ disable_weak(){ set_weak no $* } -enable_safe(){ +enable_sanitized(){ for var; do enable $(echo "$var" | sed 's/[^A-Za-z0-9_]/_/g') done } -disable_safe(){ +disable_sanitized(){ for var; do disable $(echo "$var" | sed 's/[^A-Za-z0-9_]/_/g') done @@ -1108,8 +1108,8 @@ check_header(){ log check_header "$@" header=$1 shift - disable_safe $header - check_cpp "$@" <<EOF && enable_safe $header + disable_sanitized $header + check_cpp "$@" <<EOF && enable_sanitized $header #include <$header> int x; EOF @@ -1120,11 +1120,11 @@ check_header_objcc(){ rm -f -- "$TMPO" header=$1 shift - disable_safe $header + disable_sanitized $header { echo "#include <$header>" echo "int main(void) { return 0; }" - } | check_objcc && check_stat "$TMPO" && enable_safe $header + } | check_objcc && check_stat "$TMPO" && enable_sanitized $header } check_apple_framework(){ @@ -1196,7 +1196,7 @@ check_func_headers(){ echo " ret |= ((intptr_t)check_$func) & 0xFFFF;" done echo "return ret; }" - } | check_ld "cc" "$@" && enable $funcs && enable_safe $headers + } | check_ld "cc" "$@" && enable $funcs && enable_sanitized $headers } check_class_headers_cpp(){ @@ -1215,7 +1215,7 @@ check_class_headers_cpp(){ i=$(expr $i + 1) done echo "return 0; }" - } | check_ld "cxx" "$@" && enable $funcs && enable_safe $headers + } | check_ld "cxx" "$@" && enable $funcs && enable_sanitized $headers } check_cpp_condition(){ @@ -1282,8 +1282,8 @@ check_pkg_config(){ pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && enable $name && - set_safe "${name}_cflags" $pkg_cflags && - set_safe "${name}_extralibs" $pkg_libs + set_sanitized "${name}_cflags" $pkg_cflags && + set_sanitized "${name}_extralibs" $pkg_libs } check_exec(){ @@ -1326,8 +1326,8 @@ check_type(){ headers=$1 type=$2 shift 2 - disable_safe "$type" - check_code cc "$headers" "$type v" "$@" && enable_safe "$type" + disable_sanitized "$type" + check_code cc "$headers" "$type v" "$@" && enable_sanitized "$type" } check_struct(){ @@ -1336,9 +1336,9 @@ check_struct(){ struct=$2 member=$3 shift 3 - disable_safe "${struct}_${member}" + disable_sanitized "${struct}_${member}" check_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" && - enable_safe "${struct}_${member}" + enable_sanitized "${struct}_${member}" } check_builtin(){ @@ -1398,7 +1398,7 @@ use_pkg_config(){ log use_pkg_config "$@" name="$1" check_pkg_config "$@" || return 1 - add_cflags $(get_safe "${name}_cflags") + add_cflags $(get_sanitized "${name}_cflags") } require_pkg_config(){ @@ -6183,7 +6183,7 @@ rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || d # check V4L2 codecs available in the API check_header linux/fb.h check_header linux/videodev2.h -check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete +check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete check_code cc linux/videodev2.h "int i = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_VIDEO_M2M | V4L2_BUF_FLAG_LAST;" || disable v4l2_m2m check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_VC1_ANNEX_G;" && enable vc1_v4l2_m2m check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG1;" && enable mpeg1_v4l2_m2m @@ -6196,7 +6196,7 @@ check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_VP8;" && enable vp8_v4l2_m check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_VP9;" && enable vp9_v4l2_m2m check_header sys/videoio.h -check_code cc sys/videoio.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete +check_code cc sys/videoio.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete check_lib user32 "windows.h winuser.h" GetShellWindow -luser32 check_lib vfw32 "windows.h vfw.h" capCreateCaptureWindow -lvfw32 @@ -6216,9 +6216,9 @@ check_type "dshow.h" IBaseFilter check_header dev/ic/bt8xx.h if check_struct sys/soundcard.h audio_buf_info bytes; then - enable_safe sys/soundcard.h + enable_sanitized sys/soundcard.h else - check_cc -D__BSD_VISIBLE -D__XSI_VISIBLE <<EOF && add_cppflags -D__BSD_VISIBLE -D__XSI_VISIBLE && enable_safe sys/soundcard.h + check_cc -D__BSD_VISIBLE -D__XSI_VISIBLE <<EOF && add_cppflags -D__BSD_VISIBLE -D__XSI_VISIBLE && enable_sanitized sys/soundcard.h #include <sys/soundcard.h> audio_buf_info abc; EOF ====================================================================== diff --cc configure index 2e0236285e,ecc77842ff..0e1ccaac58 --- a/configure +++ b/configure @@@ -1115,28 -944,6 +1115,28 @@@ int x EOF } +check_header_objcc(){ + log check_header_objcc "$@" + rm -f -- "$TMPO" + header=$1 + shift - disable_safe $header ++ disable_sanitized $header + { + echo "#include <$header>" + echo "int main(void) { return 0; }" - } | check_objcc && check_stat "$TMPO" && enable_safe $header ++ } | check_objcc && check_stat "$TMPO" && enable_sanitized $header +} + +check_apple_framework(){ + log check_apple_framework "$@" + framework="$1" + name="$(tolower $framework)" + header="${framework}/${framework}.h" + disable $name + check_header_objcc $header && + enable $name && eval ${name}_extralibs='"-framework $framework"' +} + check_func(){ log check_func "$@" func=$1 @@@ -1190,32 -981,8 +1190,32 @@@ check_func_headers() for func in $funcs; do echo "long check_$func(void) { return (long) $func; }" done - echo "int main(void) { return 0; }" - } | check_ld "$@" && enable $funcs && enable_sanitized $headers + echo "int main(void) { int ret = 0;" + # LTO could optimize out the test functions without this + for func in $funcs; do + echo " ret |= ((intptr_t)check_$func) & 0xFFFF;" + done + echo "return ret; }" - } | check_ld "cc" "$@" && enable $funcs && enable_safe $headers ++ } | check_ld "cc" "$@" && enable $funcs && enable_sanitized $headers +} + +check_class_headers_cpp(){ + log check_class_headers_cpp "$@" + headers=$1 + classes=$2 + shift 2 + { + for hdr in $headers; do + echo "#include <$hdr>" + done + echo "int main(void) { " + i=1 + for class in $classes; do + echo "$class obj$i;" + i=$(expr $i + 1) + done + echo "return 0; }" - } | check_ld "cxx" "$@" && enable $funcs && enable_safe $headers ++ } | check_ld "cxx" "$@" && enable $funcs && enable_sanitized $headers } check_cpp_condition(){ @@@ -1282,8 -1036,8 +1282,8 @@@ check_pkg_config() pkg_libs=$($pkg_config --libs $pkg_config_flags $pkg) check_func_headers "$headers" "$funcs" $pkg_cflags $pkg_libs "$@" && enable $name && - set_safe "${name}_cflags" $pkg_cflags && - set_safe "${name}_extralibs" $pkg_libs - add_cflags "$pkg_cflags" && - eval $(sanitize_var_name ${name}_extralibs)="\$pkg_libs" ++ set_sanitized "${name}_cflags" $pkg_cflags && ++ set_sanitized "${name}_extralibs" $pkg_libs } check_exec(){ @@@ -1394,13 -1140,6 +1394,13 @@@ require_cpp_condition() check_cpp_condition "$header" "$condition" "$@" || die "ERROR: $condition not satisfied" } +use_pkg_config(){ + log use_pkg_config "$@" + name="$1" + check_pkg_config "$@" || return 1 - add_cflags $(get_safe "${name}_cflags") ++ add_cflags $(get_sanitized "${name}_cflags") +} + require_pkg_config(){ log require_pkg_config "$@" pkg_version="$2" @@@ -6112,91 -4789,32 +6112,91 @@@ enabled openssl && { use_pkg_ check_lib openssl openssl/ssl.h SSL_library_init -lssl32 -leay32 || check_lib openssl openssl/ssl.h SSL_library_init -lssl -lcrypto -lws2_32 -lgdi32 || die "ERROR: openssl not found"; } +enabled rkmpp && { { require_pkg_config rkmpp rockchip_mpp rockchip/rk_mpi.h mpp_create || + die "ERROR : Rockchip MPP was not found."; } && + { check_func_headers rockchip/rk_mpi_cmd.h "MPP_DEC_GET_FREE_PACKET_SLOT_COUNT" || + die "ERROR: Rockchip MPP is outdated, please get a more recent one."; } && + { enabled libdrm || + die "ERROR: rkmpp requires --enable-libdrm"; } + } -enabled gnutls && check_lib gmp gmp.h mpz_export -lgmp - -if enabled nvenc; then - require_header nvEncodeAPI.h - require_cpp_condition nvEncodeAPI.h "NVENCAPI_MAJOR_VERSION >= 6" +if enabled gcrypt; then + GCRYPT_CONFIG="${cross_prefix}libgcrypt-config" + if "${GCRYPT_CONFIG}" --version > /dev/null 2>&1; then + gcrypt_cflags=$("${GCRYPT_CONFIG}" --cflags) + gcrypt_extralibs=$("${GCRYPT_CONFIG}" --libs) + check_func_headers gcrypt.h gcry_mpi_new $gcrypt_cflags $gcrypt_extralibs || + die "ERROR: gcrypt not found" + add_cflags $gcrypt_cflags + else + require gcrypt gcrypt.h gcry_mpi_new -lgcrypt + fi fi -# SDL is "special" and adds some CFLAGS that should not pollute anything else. -if enabled avplay; then - CFLAGS_SAVE=$CFLAGS - check_pkg_config sdl "sdl >= 1.2.1 sdl < 1.3.0" SDL_events.h SDL_PollEvent && - sdl_cflags=$pkg_cflags - CFLAGS=$CFLAGS_SAVE +if enabled sdl2; then + SDL2_CONFIG="${cross_prefix}sdl2-config" + if check_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 2.1.0" SDL_events.h SDL_PollEvent; then + check_func SDL_Init $sdl2_extralibs $sdl2_cflags || + disable sdl2 + elif "${SDL2_CONFIG}" --version > /dev/null 2>&1; then + sdl2_cflags=$("${SDL2_CONFIG}" --cflags) + sdl2_extralibs=$("${SDL2_CONFIG}" --libs) + check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x020001" $sdl2_cflags && + check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) < 0x020100" $sdl2_cflags && + check_func SDL_Init $sdl2_extralibs $sdl2_cflags && + enable sdl2 + fi + if test $target_os = "mingw32"; then + sdl2_extralibs=$(filter_out '-mwindows' $sdl2_extralibs) + fi fi -! disabled pod2man && check_cmd pod2man --help && enable pod2man || disable pod2man -! disabled texi2html && check_cmd texi2html -version && enable texi2html || disable texi2html +if enabled decklink; then + case $target_os in + mingw32*|mingw64*|win32|win64) + decklink_outdev_extralibs="$decklink_outdev_extralibs -lole32 -loleaut32" + decklink_indev_extralibs="$decklink_indev_extralibs -lole32 -loleaut32" + ;; + esac +fi +enabled securetransport && + check_func SecIdentityCreate "-Wl,-framework,CoreFoundation -Wl,-framework,Security" && + check_lib securetransport "Security/SecureTransport.h Security/Security.h" "SSLCreateContext SecItemImport" "-Wl,-framework,CoreFoundation -Wl,-framework,Security" || + disable securetransport + +enabled schannel && + check_func_headers "windows.h security.h" InitializeSecurityContext -DSECURITY_WIN32 -lsecur32 && + check_cpp_condition winerror.h "defined(SEC_I_CONTEXT_EXPIRED)" && + schannel_extralibs="-lsecur32" || + disable schannel + +makeinfo --version > /dev/null 2>&1 && enable makeinfo || disable makeinfo +enabled makeinfo \ + && [ 0$(makeinfo --version | grep "texinfo" | sed 's/.*texinfo[^0-9]*\([0-9]*\)\..*/\1/') -ge 5 ] \ + && enable makeinfo_html || disable makeinfo_html +disabled makeinfo_html && texi2html --help 2> /dev/null | grep -q 'init-file' && enable texi2html || disable texi2html +perl -v > /dev/null 2>&1 && enable perl || disable perl +pod2man --help > /dev/null 2>&1 && enable pod2man || disable pod2man +rsync --help 2> /dev/null | grep -q 'contimeout' && enable rsync_contimeout || disable rsync_contimeout + +# check V4L2 codecs available in the API check_header linux/fb.h check_header linux/videodev2.h - check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete -check_struct linux/videodev2.h "struct v4l2_frmivalenum" discrete - -check_header AVFoundation/AVFoundation.h ++check_code cc linux/videodev2.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete +check_code cc linux/videodev2.h "int i = V4L2_CAP_VIDEO_M2M_MPLANE | V4L2_CAP_VIDEO_M2M | V4L2_BUF_FLAG_LAST;" || disable v4l2_m2m +check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_VC1_ANNEX_G;" && enable vc1_v4l2_m2m +check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG1;" && enable mpeg1_v4l2_m2m +check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG2;" && enable mpeg2_v4l2_m2m +check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_MPEG4;" && enable mpeg4_v4l2_m2m +check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_HEVC;" && enable hevc_v4l2_m2m +check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_H263;" && enable h263_v4l2_m2m +check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_H264;" && enable h264_v4l2_m2m +check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_VP8;" && enable vp8_v4l2_m2m +check_code cc linux/videodev2.h "int i = V4L2_PIX_FMT_VP9;" && enable vp9_v4l2_m2m check_header sys/videoio.h - check_code cc sys/videoio.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_safe struct_v4l2_frmivalenum_discrete ++check_code cc sys/videoio.h "struct v4l2_frmsizeenum vfse; vfse.discrete.width = 0;" && enable_sanitized struct_v4l2_frmivalenum_discrete check_lib user32 "windows.h winuser.h" GetShellWindow -luser32 check_lib vfw32 "windows.h vfw.h" capCreateCaptureWindow -lvfw32 @@@ -6215,17 -4831,10 +6215,17 @@@ check_type "dshow.h" IBaseFilte check_header dev/video/bktr/ioctl_bt848.h; } || check_header dev/ic/bt8xx.h -check_header sys/soundcard.h +if check_struct sys/soundcard.h audio_buf_info bytes; then - enable_safe sys/soundcard.h ++ enable_sanitized sys/soundcard.h +else - check_cc -D__BSD_VISIBLE -D__XSI_VISIBLE <<EOF && add_cppflags -D__BSD_VISIBLE -D__XSI_VISIBLE && enable_safe sys/soundcard.h ++ check_cc -D__BSD_VISIBLE -D__XSI_VISIBLE <<EOF && add_cppflags -D__BSD_VISIBLE -D__XSI_VISIBLE && enable_sanitized sys/soundcard.h + #include <sys/soundcard.h> + audio_buf_info abc; +EOF +fi check_header soundcard.h -enabled_any alsa_indev alsa_outdev && +enabled alsa && use_pkg_config alsa alsa "alsa/asoundlib.h" snd_pcm_htimestamp || check_lib alsa alsa/asoundlib.h snd_pcm_htimestamp -lasound enabled libjack && _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog