--enable-pic build position-independent code
--malloc-prefix=PFX prefix malloc and related names with PFX
--enable-sram allow use of on-chip SRAM
+ --disable-symver disable symbol versioning
Developer options (useful when working on FFmpeg itself):
--disable-debug disable debugging symbols
cat <<EOF
If you think configure made a mistake, make sure you are using the latest
-version from SVN. If the latest version fails, report the problem to the
+version from Git. If the latest version fails, report the problem to the
ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
EOF
if disabled logging; then
pic
postproc
rdft
+ rtpdec
runtime_cpudetect
shared
small
machine_ioctl_bt848_h
machine_ioctl_meteor_h
malloc_h
+ MapViewOfFile
memalign
mkstemp
+ mmap
pld
posix_memalign
round
VirtualAlloc
winsock2_h
xform_asm
+ xmm_clobbers
yasm
"
logging
optimizations
stripping
+ symver
yasm
"
# decoders / encoders / hardware accelerators
aac_decoder_select="mdct rdft"
aac_encoder_select="mdct"
+aac_latm_decoder_select="aac_decoder aac_latm_parser"
ac3_decoder_select="mdct ac3_parser"
+ac3_encoder_select="mdct"
alac_encoder_select="lpc"
amrnb_decoder_select="lsp"
+amrwb_decoder_select="lsp"
atrac1_decoder_select="mdct"
atrac3_decoder_select="mdct"
binkaudio_dct_decoder_select="mdct rdft dct"
libxvid_encoder_deps="libxvid"
# demuxers / muxers
-ac3_demuxer_deps="ac3_parser"
+ac3_demuxer_select="ac3_parser"
asf_stream_muxer_select="asf_muxer"
avisynth_demuxer_deps="avisynth"
-dirac_demuxer_deps="dirac_parser"
+dirac_demuxer_select="dirac_parser"
eac3_demuxer_select="ac3_parser"
+flac_demuxer_select="flac_parser"
ipod_muxer_select="mov_muxer"
libnut_demuxer_deps="libnut"
libnut_muxer_deps="libnut"
matroska_audio_muxer_select="matroska_muxer"
matroska_demuxer_suggest="zlib bzlib"
mov_demuxer_suggest="zlib"
-mp3_demuxer_deps="mpegaudio_parser"
+mp3_demuxer_select="mpegaudio_parser"
mp4_muxer_select="mov_muxer"
mpegtsraw_demuxer_select="mpegts_demuxer"
mxf_d10_muxer_select="mxf_muxer"
ogg_demuxer_select="golomb"
psp_muxer_select="mov_muxer"
-rtsp_demuxer_select="http_protocol sdp_demuxer"
-rtsp_muxer_select="rtp_muxer http_protocol sdp_demuxer"
-sdp_demuxer_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer"
+rtp_demuxer_select="sdp_demuxer"
+rtpdec_select="asf_demuxer rm_demuxer rtp_protocol mpegts_demuxer mov_demuxer"
+rtsp_demuxer_select="http_protocol rtpdec"
+rtsp_muxer_select="rtp_muxer http_protocol rtp_protocol"
+sap_demuxer_select="sdp_demuxer"
+sap_muxer_select="rtp_muxer rtp_protocol"
+sdp_demuxer_select="rtpdec"
spdif_muxer_select="aac_parser"
tg2_muxer_select="mov_muxer"
tgp_muxer_select="mov_muxer"
# filters
blackframe_filter_deps="gpl"
+cropdetect_filter_deps="gpl"
frei0r_filter_deps="frei0r dlopen strtok_r"
-ocv_smooth_filter_deps="libopencv"
+frei0r_src_filter_deps="frei0r dlopen strtok_r"
+hqdn3d_filter_deps="gpl"
+scale_filter_deps="swscale"
+ocv_filter_deps="libopencv"
yadif_filter_deps="gpl"
# libraries
}
test_deps _encoder _decoder \
- ac3 \
adpcm_g726=g726 \
adpcm_ima_qt \
adpcm_ima_wav \
pbm=pbmpipe \
pcx \
pgm="pgm pgmpipe" \
+ png \
ppm="ppm ppmpipe" \
rawvideo="rgb yuv" \
roq \
wav \
yuv4mpegpipe=yuv4mpeg \
+ac3_fixed_test_deps="ac3_fixed_encoder ac3_decoder rm_muxer rm_demuxer"
mpg_test_deps="mpeg1system_muxer mpegps_demuxer"
set_ne_test_deps pixdesc
+set_ne_test_deps pixfmts_copy
set_ne_test_deps pixfmts_crop
set_ne_test_deps pixfmts_hflip
set_ne_test_deps pixfmts_null
: ${TMPDIR:=$TMP}
: ${TMPDIR:=/tmp}
-if ! check_cmd type mktemp; then
+if ! check_cmd mktemp -u; then
# simple replacement for missing mktemp
# NOT SAFE FOR GENERAL USE
mktemp(){
- echo "${2%XXX*}.${HOSTNAME}.${UID}.$$"
+ echo "${2%%XXX*}.${HOSTNAME}.${UID}.$$"
}
fi
}
trap 'rm -f -- $TMPFILES' EXIT
-trap exit HUP INT TERM
tmpfile TMPC .c
tmpfile TMPE $EXESUF
unset -f mktemp
+chmod +x $TMPE
+
# make sure we can execute files in $TMPDIR
cat > $TMPSH 2>> $logfile <<EOF
#! /bin/sh
check_cflags -marm
nogas=die
- check_ld <<EOF && enable vfp_args
+ if check_cpp_condition stddef.h "defined __ARM_PCS_VFP"; then
+ enable vfp_args
+ elif ! check_cpp_condition stddef.h "defined __ARM_PCS || defined __SOFTFP__"; then
+ case "${cross_prefix:-$cc}" in
+ *hardfloat*) enable vfp_args; fpabi=vfp ;;
+ *) check_ld <<EOF && enable vfp_args && fpabi=vfp || fpabi=soft ;;
__asm__ (".eabi_attribute 28, 1");
int main(void) { return 0; }
EOF
+ esac
+ warn "Compiler does not indicate floating-point ABI, guessing $fpabi."
+ fi
# We have to check if pld is a nop and disable it.
check_asm pld '"pld [r0]"'
check_asm ebx_available '""::"b"(0)' &&
check_asm ebx_available '"":::"%ebx"'
+ # check whether xmm clobbers are supported
+ check_asm xmm_clobbers '"":::"%xmm0"'
+
# check whether more than 10 operands are supported
check_cc <<EOF && enable ten_operands
int main(void) {
check_func isatty
check_func ${malloc_prefix}memalign && enable memalign
check_func mkstemp
+check_func mmap
check_func ${malloc_prefix}posix_memalign && enable posix_memalign
check_func setrlimit
check_func strerror_r
check_func_headers lzo/lzo1x.h lzo1x_999_compress
check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
check_func_headers windows.h GetProcessTimes
+check_func_headers windows.h MapViewOfFile
check_func_headers windows.h VirtualAlloc
check_header conio.h
require libdirac libdirac_encoder/dirac_encoder.h dirac_encoder_init $(pkg-config --libs dirac)
enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
enabled libgsm && require libgsm gsm/gsm.h gsm_create -lgsm
-enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h hip_decode_init -lmp3lame
+enabled libmp3lame && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame
enabled libnut && require libnut libnut.h nut_demuxer_init -lnut
enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb
enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb
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."; }
+ { check_cpp_condition x264.h "X264_BUILD >= 99" ||
+ die "ERROR: libx264 version must be >= 0.99."; }
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
if enabled network; then
check_type "sys/types.h sys/socket.h" socklen_t
check_type netdb.h "struct addrinfo"
- check_type netinet/in.h "struct ipv6_mreq"
+ check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE
check_type netinet/in.h "struct sockaddr_in6"
check_type "sys/types.h sys/socket.h" "struct sockaddr_storage"
check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len
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)/libavcore -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
-check_ldflags -Wl,-Bsymbolic
+test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
echo "X{};" > $TMPV
if test_ldflags -Wl,--version-script,$TMPV; then
# -wd: Disable following warnings
# 144, 167, 556: -Wno-pointer-sign
# 10006: ignoring unknown option -fno-signed-zeros
+ # 10148: ignoring unknown option -Wno-parentheses
# 10156: ignoring option '-W'; no argument required
- check_cflags -wd144,167,556,10006,10156
+ check_cflags -wd144,167,556,10006,10148,10156
# 11030: Warning unknown option --as-needed
# 10156: ignoring option '-export'; no argument required
check_ldflags -wd10156,11030
# 2523: use of inline assembler is deprecated
add_cflags -W${armcc_opt},--diag_suppress=2523
add_cflags -W${armcc_opt},--diag_suppress=1207
+ add_cflags -W${armcc_opt},--diag_suppress=1293 # assignment in condition
+ add_cflags -W${armcc_opt},--diag_suppress=3343 # hardfp compat
elif enabled tms470; then
add_cflags -pds=824 -pds=837
fi
#define CC_TYPE "$cc_type"
#define CC_VERSION $cc_version
#define restrict $_restrict
-#define ASMALIGN(ZEROBITS) ".p2align " #ZEROBITS "\\n\\t"
#define EXTERN_PREFIX "${extern_prefix}"
#define EXTERN_ASM ${extern_prefix}
#define SLIBSUF "$SLIBSUF"
if enabled small || disabled optimizations; then
echo "#undef av_always_inline" >> $TMPH
- echo "#define av_always_inline" >> $TMPH
+ if enabled small; then
+ echo "#define av_always_inline inline" >> $TMPH
+ else
+ echo "#define av_always_inline av_unused" >> $TMPH
+ fi
fi
if enabled yasm; then