--enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
--enable-hardcoded-tables use hardcoded tables instead of runtime generation
--enable-memalign-hack emulate memalign, interferes with memory debuggers
- --enable-beos-netserver enable BeOS netserver
--disable-everything disable all components listed below
--disable-encoder=NAME disable encoder NAME
--enable-encoder=NAME enable encoder NAME
--enable-libtheora enable Theora encoding via libtheora [no]
--enable-libvorbis enable Vorbis encoding via libvorbis,
native implementation exists [no]
+ --enable-libvpx enable VP8 support via libvpx [no]
--enable-libx264 enable H.264 encoding via x264 [no]
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvid encoder exists [no]
exit 0
}
+quotes='""'
+
log(){
echo "$@" >> $logfile
}
avfilter_lavf
avformat
avisynth
- beos_netserver
bzlib
dct
doc
libspeex
libtheora
libvorbis
+ libvpx
libx264
libxvid
lpc
struct_sockaddr_in6
struct_sockaddr_sa_len
struct_sockaddr_storage
+ symver
+ symver_gnu_asm
+ symver_asm_label
sys_mman_h
sys_resource_h
sys_select_h
need_memalign="altivec neon sse"
inline_asm_deps="!tms470"
+symver_if_any="symver_asm_label symver_gnu_asm"
+
# subsystems
mdct_select="fft"
rdft_select="fft"
png_encoder_select="zlib"
qcelp_decoder_select="lsp"
qdm2_decoder_select="mdct rdft"
+real_144_encoder_select="lpc"
rv10_decoder_select="h263_decoder"
rv10_encoder_select="h263_encoder"
rv20_decoder_select="h263_decoder"
libspeex_decoder_deps="libspeex"
libtheora_encoder_deps="libtheora"
libvorbis_encoder_deps="libvorbis"
+libvpx_decoder_deps="libvpx"
+libvpx_encoder_deps="libvpx"
libx264_encoder_deps="libx264"
libxvid_encoder_deps="libxvid"
alsa_indev_extralibs="-lasound"
alsa_outdev_deps="alsa_asoundlib_h"
alsa_outdev_extralibs="-lasound"
-audio_beos_indev_deps="audio_beos"
-audio_beos_indev_extralibs="-lmedia -lbe"
-audio_beos_outdev_deps="audio_beos"
-audio_beos_outdev_extralibs="-lmedia -lbe"
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 dv_demuxer"
jack_indev_deps="jack_jack_h"
gopher_protocol_deps="network"
http_protocol_deps="network"
http_protocol_select="tcp_protocol"
+mmst_protocol_deps="network"
rtmp_protocol_select="tcp_protocol"
rtp_protocol_select="udp_protocol"
tcp_protocol_deps="network"
# programs
ffmpeg_deps="avcodec avformat swscale"
+ffmpeg_select="buffer_filter"
ffplay_deps="avcodec avformat swscale sdl"
ffplay_select="rdft"
ffprobe_deps="avcodec avformat"
# OS specific
case $target_os in
- beos|haiku|zeta)
- prefix_default="$HOME/config"
- # 3 gcc releases known for BeOS, each with ugly bugs
- gcc_version="$($cc -v 2>&1 | grep version | cut -d ' ' -f3-)"
- case "$gcc_version" in
- 2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
- disable mmx
- ;;
- *20010315*) echo "BeBits gcc"
- add_cflags -fno-expensive-optimizations
- ;;
- esac
- SHFLAGS=-nostart
- # enable BeOS things
- enable audio_beos
- # no need for libm, but the inet stuff
- # Check for BONE
- # XXX: actually should check for NOT net_server
- if echo $BEINCLUDES | grep -q 'headers/be/bone'; then
- network_extralibs="-lbind -lsocket"
- else
- enable beos_netserver
- network_extralibs="-lnet"
- fi ;;
+ haiku)
+ prefix_default="/boot/common"
+ network_extralibs="-lnetwork"
+ ;;
sunos)
FFSERVERLDFLAGS=""
SHFLAGS='-shared -Wl,-h,$$(@F)'
done
check_lib math.h sin -lm
-check_lib va/va.h vaInitialize -lva
+disabled vaapi || check_lib va/va.h vaInitialize -lva
check_mathfunc exp2
check_mathfunc exp2f
enabled libopencore_amrnb && require libopencore_amrnb opencore-amrnb/interf_dec.h Decoder_Interface_init -lopencore-amrnb -lm
enabled libopencore_amrwb && require libopencore_amrwb opencore-amrwb/dec_if.h D_IF_init -lopencore-amrwb -lm
enabled libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg
-enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Init -lrtmp
+enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Init $(pkg-config --libs librtmp)
enabled libschroedinger && add_cflags $(pkg-config --cflags schroedinger-1.0) &&
require libschroedinger schroedinger/schro.h schro_init $(pkg-config --libs schroedinger-1.0)
enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex
enabled libtheora && require libtheora theora/theoraenc.h th_info_init -ltheoraenc -ltheoradec -logg
enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg
+enabled libvpx && require2 libvpx "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_dec_init_ver" -lvpx &&
+ require2 libvpx "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_enc_init_ver" -lvpx
enabled libx264 && require libx264 x264.h x264_encoder_encode -lx264 -lm &&
- { check_cpp_condition x264.h "X264_BUILD >= 90" ||
- die "ERROR: libx264 version must be >= 0.90."; }
+ { check_cpp_condition x264.h "X264_BUILD >= 98" ||
+ die "ERROR: libx264 version must be >= 0.98."; }
enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
enabled mlib && require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod -lmlib
check_ldflags -Wl,-Bsymbolic
echo "X{};" > $TMPV
-test_ldflags -Wl,--version-script,$TMPV &&
+if test_ldflags -Wl,--version-script,$TMPV; then
append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver'
+ check_cc <<EOF && enable symver_asm_label
+void ff_foo(void) __asm__ ("av_foo@VERSION");
+void ff_foo(void) { ${inline_asm+__asm__($quotes);} }
+EOF
+ check_cc <<EOF && enable symver_gnu_asm
+__asm__(".symver ff_foo,av_foo@VERSION");
+void ff_foo(void) {}
+EOF
+fi
if enabled small; then
add_cflags $size_cflags
add_ldflags -p
fi
-# Find out if the .align argument is a power of two or not.
-check_asm asmalign_pot '".align 3"'
-
enabled_any $THREADS_LIST && enable threads
check_deps $CONFIG_LIST \
echo "install prefix $prefix"
echo "source path $source_path"
echo "C compiler $cc"
-echo ".align is power-of-two $asmalign_pot"
echo "ARCH $arch ($cpu)"
if test "$build_suffix" != ""; then
echo "build suffix $build_suffix"
echo "libspeex enabled ${libspeex-no}"
echo "libtheora enabled ${libtheora-no}"
echo "libvorbis enabled ${libvorbis-no}"
+echo "libvpx enabled ${libvpx-no}"
echo "libx264 enabled ${libx264-no}"
echo "libxvid enabled ${libxvid-no}"
echo "zlib enabled ${zlib-no}"
get_version LIBAVUTIL libavutil/avutil.h
get_version LIBAVFILTER libavfilter/avfilter.h
-enabled asmalign_pot || align_shift="1 <<"
-
cat > $TMPH <<EOF
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define CC_TYPE "$cc_type"
#define CC_VERSION $cc_version
#define restrict $_restrict
-#define ASMALIGN(ZEROBITS) ".align $align_shift " #ZEROBITS "\\n\\t"
+#define ASMALIGN(ZEROBITS) ".p2align " #ZEROBITS "\\n\\t"
#define EXTERN_PREFIX "${extern_prefix}"
#define EXTERN_ASM ${extern_prefix}
EOF