--disable-ffserver disable ffserver build
--disable-avdevice disable libavdevice build
--disable-avcodec disable libavcodec build
+ --disable-avcore disable libavcore build
--disable-avformat disable libavformat build
--disable-swscale disable libswscale build
--enable-postproc enable GPLed postprocessing support [no]
--disable-avfilter disable video filter support [no]
- --enable-avfilter-lavf video filters dependent on avformat [no]
--disable-pthreads disable pthreads [auto]
--enable-w32threads use Win32 threads [no]
--enable-x11grab enable X11 grabbing [no]
--disable-dct disable DCT code
--disable-fft disable FFT code
--disable-golomb disable Golomb code
+ --disable-huffman disable Huffman code
--disable-lpc disable LPC code
--disable-mdct disable MDCT code
--disable-rdft disable RDFT code
native implementation exists [no]
--enable-libvpx enable VP8 support via libvpx [no]
--enable-libx264 enable H.264 encoding via x264 [no]
+ --enable-libxavs enable AVS encoding via xavs [no]
--enable-libxvid enable Xvid encoding via xvidcore,
native MPEG-4/Xvid encoder exists [no]
--enable-mlib enable Sun medialib [no]
sh_quote(){
v=$(echo "$1" | sed "s/'/'\\\\''/g")
- test "$v" = "${v#*[ |&;<>()$\`\\\"\'*?\[\]#~=%]}" || v="'$v'"
+ test "x$v" = "x${v#*[!A-Za-z0-9_/.+-]}" || v="'$v'"
echo "$v"
}
done
}
+print_enabled(){
+ test "$1" = -n && end=" " && shift || end="\n"
+ suf=$1
+ shift
+ for v; do
+ enabled $v && printf "%s$end" ${v%$suf};
+ done
+}
+
append(){
var=$1
shift
$COMPONENT_LIST
aandct
avcodec
+ avcore
avdevice
avfilter
- avfilter_lavf
avformat
avisynth
bzlib
gpl
gray
h264dsp
+ h264pred
hardcoded_tables
+ huffman
libdc1394
libdirac
libfaac
libvorbis
libvpx
libx264
+ libxavs
libxvid
lpc
lsp
HAVE_LIST_PUB='
bigendian
+ fast_unaligned
'
HAVE_LIST="
fast_64bit
fast_clz
fast_cmov
- fast_unaligned
fcntl
fork
getaddrinfo
GetProcessMemoryInfo
GetProcessTimes
getrusage
+ gnu_as
struct_rusage_ru_maxrss
ibm_asm
inet_aton
symver_if_any="symver_asm_label symver_gnu_asm"
# subsystems
+dct_select="rdft"
mdct_select="fft"
rdft_select="fft"
# decoders / encoders / hardware accelerators
-aac_decoder_select="mdct rdft aac_parser"
+aac_decoder_select="mdct rdft"
aac_encoder_select="mdct"
ac3_decoder_select="mdct ac3_parser"
alac_encoder_select="lpc"
flashsv_encoder_select="zlib"
flv_decoder_select="h263_decoder"
flv_encoder_select="h263_encoder"
+fraps_decoder_select="huffman"
h261_encoder_select="aandct"
h263_decoder_select="h263_parser"
h263_encoder_select="aandct"
h263_vaapi_hwaccel_select="vaapi h263_decoder"
h263i_decoder_select="h263_decoder"
h263p_encoder_select="h263_encoder"
-h264_decoder_select="golomb h264dsp"
+h264_decoder_select="golomb h264dsp h264pred"
h264_dxva2_hwaccel_deps="dxva2api_h"
h264_dxva2_hwaccel_select="dxva2 h264_decoder"
h264_vaapi_hwaccel_select="vaapi"
rv10_encoder_select="h263_encoder"
rv20_decoder_select="h263_decoder"
rv20_encoder_select="h263_encoder"
-rv30_decoder_select="golomb h264dsp"
-rv40_decoder_select="golomb h264dsp"
+rv30_decoder_select="golomb h264pred"
+rv40_decoder_select="golomb h264pred"
shorten_decoder_select="golomb"
sipr_decoder_select="lsp"
snow_decoder_select="dwt"
sonic_encoder_select="golomb"
sonic_ls_encoder_select="golomb"
svq1_encoder_select="aandct"
-svq3_decoder_select="golomb h264dsp"
+svq3_decoder_select="golomb h264dsp h264pred"
svq3_decoder_suggest="zlib"
theora_decoder_select="vp3_decoder"
tiff_decoder_suggest="zlib"
vc1_vdpau_decoder_select="vdpau vc1_decoder"
vorbis_decoder_select="mdct"
vorbis_encoder_select="mdct"
+vp6_decoder_select="huffman"
vp6a_decoder_select="vp6_decoder"
vp6f_decoder_select="vp6_decoder"
-vp8_decoder_select="h264dsp"
+vp8_decoder_select="h264pred"
wmapro_decoder_select="mdct"
wmav1_decoder_select="mdct"
wmav1_encoder_select="mdct"
wmav2_decoder_select="mdct"
wmav2_encoder_select="mdct"
-wmavoice_decoder_select="lsp rdft dct"
+wmavoice_decoder_select="lsp rdft dct mdct"
wmv1_decoder_select="h263_decoder"
wmv1_encoder_select="h263_encoder"
wmv2_decoder_select="h263_decoder"
vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
# parsers
-h264_parser_select="golomb h264dsp"
-
-# bitstream_filters
-aac_adtstoasc_bsf_select="aac_parser"
+h264_parser_select="golomb h264dsp h264pred"
# external libraries
libdirac_decoder_deps="libdirac !libschroedinger"
libvpx_decoder_deps="libvpx"
libvpx_encoder_deps="libvpx"
libx264_encoder_deps="libx264"
+libxavs_encoder_deps="libxavs"
libxvid_encoder_deps="libxvid"
# demuxers / muxers
# indevs / outdevs
alsa_indev_deps="alsa_asoundlib_h snd_pcm_htimestamp"
-alsa_indev_extralibs="-lasound"
alsa_outdev_deps="alsa_asoundlib_h"
-alsa_outdev_extralibs="-lasound"
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"
-jack_indev_extralibs="-ljack"
libdc1394_indev_deps="libdc1394"
oss_indev_deps_any="soundcard_h sys_soundcard_h"
oss_outdev_deps_any="soundcard_h sys_soundcard_h"
v4l_indev_deps="linux_videodev_h"
v4l2_indev_deps_any="linux_videodev2_h sys_videoio_h"
-vfwcap_indev_deps="capCreateCaptureWindow"
+vfwcap_indev_deps="capCreateCaptureWindow vfwcap_defines"
vfwcap_indev_extralibs="-lavicap32"
x11_grab_device_indev_deps="x11grab XShmCreateImage"
x11_grab_device_indev_extralibs="-lX11 -lXext -lXfixes"
tcp_protocol_deps="network"
udp_protocol_deps="network"
-# filters
-movie_filter_deps="avfilter_lavf"
-avfilter_lavf_deps="avformat"
-
# libraries
avdevice_deps="avcodec avformat"
avformat_deps="avcodec"
doc_deps="texi2html"
+# tests
+
+test_deps(){
+ suf1=$1
+ suf2=$2
+ shift 2
+ for v; do
+ dep=${v%=*}
+ tests=${v#*=}
+ for name in ${tests}; do
+ eval ${name}_test_deps="'${dep}$suf1 ${dep}$suf2'"
+ done
+ done
+}
+
+set_ne_test_deps(){
+ eval ${1}_be_test_deps="bigendian"
+ eval ${1}_le_test_deps="!bigendian"
+}
+
+test_deps _encoder _decoder \
+ ac3 \
+ adpcm_g726=g726 \
+ adpcm_ima_qt \
+ adpcm_ima_wav \
+ adpcm_ms \
+ adpcm_swf \
+ adpcm_yamaha=adpcm_yam \
+ alac \
+ asv1 \
+ asv2 \
+ bmp \
+ dnxhd="hdxhd_1080i dnxhd_720p dnxhd_720p_rd" \
+ dvvideo="dv dv50" \
+ ffv1 \
+ flac \
+ flashsv \
+ flv \
+ gif \
+ h261 \
+ h263="h263 h263p" \
+ huffyuv \
+ jpegls \
+ mjpeg="jpg mjpeg ljpeg" \
+ mp2 \
+ mpeg1video="mpeg mpeg1b" \
+ mpeg2video="mpeg2 mpeg2thread" \
+ mpeg4="mpeg4 mpeg4adv mpeg4nr mpeg4thread error rc" \
+ msmpeg4v3=msmpeg4 \
+ msmpeg4v2 \
+ pbm=pbmpipe \
+ pcx \
+ pgm="pgm pgmpipe" \
+ ppm="ppm ppmpipe" \
+ rawvideo="rgb yuv" \
+ roq \
+ rv10 \
+ rv20 \
+ sgi \
+ snow="snow snowll" \
+ svq1 \
+ targa=tga \
+ tiff \
+ wmav1 \
+ wmav2 \
+ wmv1 \
+ wmv2 \
+
+test_deps _muxer _demuxer \
+ aiff \
+ pcm_alaw=alaw \
+ asf \
+ au \
+ avi \
+ dv=dv_fmt \
+ ffm \
+ flv=flv_fmt \
+ gxf \
+ matroska=mkv \
+ mmf \
+ mov \
+ pcm_mulaw=mulaw \
+ mxf \
+ nut \
+ ogg \
+ rawvideo=pixfmt \
+ rm \
+ swf \
+ mpegts=ts \
+ voc \
+ wav \
+ yuv4mpegpipe=yuv4mpeg \
+
+mpg_test_deps="mpeg1system_muxer mpegps_demuxer"
+
+set_ne_test_deps pixdesc
+set_ne_test_deps pixfmts_crop
+set_ne_test_deps pixfmts_null
+set_ne_test_deps pixfmts_pad
+set_ne_test_deps pixfmts_scale
+set_ne_test_deps pixfmts_vflip
+
# default parameters
logfile="config.log"
ranlib="ranlib"
strip_default="strip"
yasmexe="yasm"
+nogas=":"
nm_opts='-g'
# configurable options
enable avcodec
+enable avcore
enable avdevice
enable avfilter
enable avformat
PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c)
FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c)
+find_tests(){
+ map "echo ${2}\${v}_test" $(ls "$source_path"/tests/ref/$1 | grep -v '[^-a-z0-9_]')
+}
+
+ACODEC_TESTS=$(find_tests acodec)
+VCODEC_TESTS=$(find_tests vsynth1)
+LAVF_TESTS=$(find_tests lavf)
+LAVFI_TESTS=$(find_tests lavfi)
+SEEK_TESTS=$(find_tests seek seek_)
+
+pcm_test_deps=$(map 'echo ${v%_*}_decoder $v' $(filter pcm_* $ENCODER_LIST))
+
for n in $COMPONENT_LIST; do
v=$(toupper ${n%s})_LIST
eval enable \$$v
eval ${n}_if_any="\$$v"
done
-enable $ARCH_EXT_LIST
+enable $ARCH_EXT_LIST $ACODEC_TESTS $VCODEC_TESTS $LAVF_TESTS $LAVFI_TESTS $SEEK_TESTS
die_unknown(){
echo "Unknown option \"$1\"."
if $cc -v 2>&1 | grep -qi ^gcc; then
cc_type=gcc
cc_version=__VERSION__
+ gcc_extra_ver=$(expr "$($cc --version | head -n1)" : '.*\((.*)\)')
+ cc_ident="gcc $($cc -dumpversion) $gcc_extra_ver"
if ! $cc -dumpversion | grep -q '^2\.'; then
CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
elif $cc --version 2>/dev/null | grep -q Intel; then
cc_type=icc
cc_version="AV_STRINGIFY(__INTEL_COMPILER)"
+ cc_ident=$($cc --version | head -n1)
CC_DEPFLAGS='-MMD'
AS_DEPFLAGS='-MMD'
speed_cflags='-O3'
elif $cc -v 2>&1 | grep -q xlc; then
cc_type=xlc
cc_version="AV_STRINGIFY(__IBMC__)"
+ cc_ident=$($cc -qversion 2>/dev/null | head -n1)
speed_cflags='-O5'
size_cflags='-O5 -qcompact'
elif $cc -V 2>/dev/null | grep -q Compaq; then
cc_type=ccc
cc_version="AV_STRINGIFY(__DECC_VER)"
+ cc_ident=$($cc -V | head -n1 | cut -d' ' -f1-3)
DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -M'
debuglevel=3
add_ldflags -Wl,-z,now # calls to libots crash without this
test -d "$sysroot" || die "No valid sysroot specified."
cc_type=armcc
cc_version="AV_STRINGIFY(__ARMCC_VERSION)"
+ cc_ident=$($cc --vsn | head -n1)
armcc_conf="$PWD/armcc.conf"
$cc --arm_linux_configure \
--arm_linux_config_file="$armcc_conf" \
elif $cc -version 2>/dev/null | grep -q TMS470; then
cc_type=tms470
cc_version="AV_STRINGIFY(__TI_COMPILER_VERSION__)"
+ cc_ident=$($cc -version | head -n1 | tr -s ' ')
cc="$cc --gcc --abi=eabi -eo=.o -mc -me"
CC_O='-fr=$(@D)'
as_default="${cross_prefix}gcc"
}
elif $cc -v 2>&1 | grep -q clang; then
cc_type=clang
- cc_version=__VERSION__
+ $cc -dM -E $TMPC | grep -q __clang_version__ &&
+ cc_version=__clang_version__ || cc_version=__VERSION__
+ cc_ident=$($cc --version | head -n1)
CC_DEPFLAGS='-MMD'
AS_DEPFLAGS='-MMD'
speed_cflags='-O3'
elif $cc -V 2>&1 | grep -q Sun; then
cc_type=suncc
cc_version="AV_STRINGIFY(__SUNPRO_C)"
+ cc_ident=$($cc -V 2>&1 | head -n1 | cut -d' ' -f 2-)
DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)'
DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -xM1'
speed_cflags='-O5'
esac
done
}
+elif $cc -v 2>&1 | grep -q PathScale; then
+ cc_type=pathscale
+ cc_version=__PATHSCALE__
+ cc_ident=$($cc -v 2>&1 | head -n1 | tr -d :)
+ CC_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
+ AS_DEPFLAGS='-MMD -MF $(@:.o=.d) -MT $@'
+ speed_cflags='-O2'
+ size_cflags='-Os'
fi
test -n "$cc_type" && enable $cc_type ||
case $cpu in
armv*)
cpuflags="-march=$cpu"
+ subarch=$(echo $cpu | sed 's/[^a-z0-9]//g')
;;
*)
cpuflags="-mcpu=$cpu"
+ case $cpu in
+ cortex-a*) subarch=armv7a ;;
+ cortex-r*) subarch=armv7r ;;
+ cortex-m*) subarch=armv7m ;;
+ arm11*) subarch=armv6 ;;
+ arm[79]*e*|arm9[24]6*|arm96*|arm102[26]) subarch=armv5te ;;
+ armv4*|arm7*|arm9[24]*) subarch=armv4 ;;
+ esac
;;
esac
enable malloc_aligned
;;
bsd/os)
- osextralibs="-lpoll -lgnugetopt"
+ add_extralibs -lpoll -lgnugetopt
strip="strip -d"
;;
darwin)
enable malloc_aligned
+ gas="gas-preprocessor.pl $cc"
+ enabled ppc && add_asflags -force_cpusubtype_ALL
SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress'
strip="${strip} -x"
- FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
+ add_ldflags -Wl,-dynamic,-search_paths_first
SLIBSUF=".dylib"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)'
objformat="win32"
enable dos_paths
check_cflags -fno-common
- if ! enabled x86_64; then
- check_cpp_condition _mingw.h "(__MINGW32_MAJOR_VERSION > 3) || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
+ check_cpp_condition _mingw.h "defined (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION > 3) \
+ || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
die "ERROR: MinGW runtime version must be >= 3.15."
- enabled_any avisynth vfwcap_indev &&
- { check_cpp_condition w32api.h "(__W32API_MAJOR_VERSION > 3) || (__W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION >= 13)" ||
- die "ERROR: avisynth and vfwcap_indev require w32api version 3.13 or later."; }
- fi
;;
cygwin*)
target_os=cygwin
os/2*)
strip="lxlite"
ln_s="cp -f"
- FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap"
+ add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap
SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
FFSERVERLDFLAGS=""
LIBSUF="_s.a"
set_default $PATHS_LIST
-add_extralibs $osextralibs
-
-# Combine FFLDFLAGS and the LDFLAGS environment variable.
-LDFLAGS="$FFLDFLAGS $LDFLAGS"
-
# we need to build at least one lib type
if ! enabled_any static shared; then
cat <<EOF
}
die_license_disabled gpl libx264
+die_license_disabled gpl libxavs
die_license_disabled gpl libxvid
die_license_disabled gpl postproc
die_license_disabled gpl x11grab
elif enabled arm; then
check_cflags -marm
+ nogas=die
check_ld <<EOF && enable vfp_args
__asm__ (".eabi_attribute 28, 1");
enable local_aligned_8 local_aligned_16
- check_asm dcbzl '"dcbzl 0, 1"'
+ check_asm dcbzl '"dcbzl 0, %0" :: "r"(0)'
check_asm ibm_asm '"add 0, 0, 0"'
check_asm ppc4xx '"maclhw r10, r11, r12"'
check_asm xform_asm '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)'
# AltiVec flags: The FSF version of GCC differs from the Apple version
if enabled altivec; then
+ nogas=warn
check_cflags -maltivec -mabi=altivec &&
{ check_header altivec.h && inc_altivec_h="#include <altivec.h>" ; } ||
check_cflags -faltivec
fi
+if enabled asm; then
+ as=${gas:=$as}
+ check_asm gnu_as '".macro m n\n\\n:.int 0\n.endm\nm x"' ||
+ $nogas "GNU assembler not found, install gas-preprocessor"
+fi
+
if check_func dlopen; then
ldl=
elif check_func dlopen -ldl; then
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 libopenjpeg && require libopenjpeg openjpeg.h opj_version -lopenjpeg
-enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Init $(pkg-config --libs librtmp)
+enabled librtmp && { check_lib librtmp/rtmp.h RTMP_Socket $(pkg-config --libs librtmp) ||
+ die "ERROR: librtmp not found or RTMP_Socket() missing, librtmp version must be >= 2.2.f"; }
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 libvpx && {
+ enabled libvpx_decoder && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx ||
+ die "ERROR: libvpx decoder version must be >=0.9.1"; }
+ 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."; }
+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
check_header sys/videoio.h
check_func_headers "windows.h vfw.h" capCreateCaptureWindow "$vfwcap_indev_extralibs"
+# check that WM_CAP_DRIVER_CONNECT is defined to the proper value
+# w32api 3.12 had it defined wrong
+check_cpp_condition vfw.h "WM_CAP_DRIVER_CONNECT > WM_USER" && enable vfwcap_defines
# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
{ check_header dev/bktr/ioctl_meteor.h &&
# add some useful compiler flags if supported
check_cflags -Wdeclaration-after-statement
check_cflags -Wall
+check_cflags -Wno-parentheses
check_cflags -Wno-switch
check_cflags -Wdisabled-optimization
check_cflags -Wpointer-arith
# add some linker flags
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)/libavutil'
+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
echo "X{};" > $TMPV
$INDEV_LIST \
$OUTDEV_LIST \
$PROTOCOL_LIST \
+ $ACODEC_TESTS \
+ $VCODEC_TESTS \
+ $LAVF_TESTS \
+ $LAVFI_TESTS \
+ $SEEK_TESTS \
enabled asm || { arch=c; disable $ARCH_LIST $ARCH_EXT_LIST; }
echo "shared ${shared-no}"
echo "postprocessing support ${postproc-no}"
echo "new filter support ${avfilter-no}"
-echo "filters using lavformat ${avfilter_lavf-no}"
echo "network support ${network-no}"
echo "threading support ${thread_type-no}"
echo "SDL support ${sdl-no}"
echo "libvorbis enabled ${libvorbis-no}"
echo "libvpx enabled ${libvpx-no}"
echo "libx264 enabled ${libx264-no}"
+echo "libxavs enabled ${libxavs-no}"
echo "libxvid enabled ${libxvid-no}"
echo "zlib enabled ${zlib-no}"
echo "bzlib enabled ${bzlib-no}"
for type in decoder encoder hwaccel parser demuxer muxer protocol filter bsf indev outdev; do
echo "Enabled ${type}s:"
eval list=\$$(toupper $type)_LIST
- for part in $list; do
- enabled $part && echo ${part%_*}
- done | sort | pr -3 -t
+ print_enabled '_*' $list | sort | pr -3 -t
echo
done
doc
libavcodec
libavcodec/$arch
+ libavcore
libavdevice
libavfilter
libavformat
doc/texi2pod.pl
libavcodec/Makefile
libavcodec/${arch}/Makefile
+ libavcore/Makefile
libavdevice/Makefile
libavfilter/Makefile
libavformat/Makefile
SRC_PATH="$source_path"
SRC_PATH_BARE=$source_path
BUILD_ROOT="$PWD"
+CC_IDENT=$cc_ident
ARCH=$arch
CC=$cc
AS=$as
get_version LIBSWSCALE libswscale/swscale.h
get_version LIBPOSTPROC libpostproc/postprocess.h
get_version LIBAVCODEC libavcodec/avcodec.h
+get_version LIBAVCORE libavcore/avcore.h
get_version LIBAVDEVICE libavdevice/avdevice.h
get_version LIBAVFORMAT libavformat/avformat.h
get_version LIBAVUTIL libavutil/avutil.h
$INDEV_LIST \
$OUTDEV_LIST \
+cat >>config.mak <<EOF
+ACODEC_TESTS=$(print_enabled -n _test $ACODEC_TESTS)
+VCODEC_TESTS=$(print_enabled -n _test $VCODEC_TESTS)
+LAVF_TESTS=$(print_enabled -n _test $LAVF_TESTS)
+LAVFI_TESTS=$(print_enabled -n _test $LAVFI_TESTS)
+SEEK_TESTS=$(print_enabled -n _test $SEEK_TESTS)
+EOF
+
echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
echo "endif # FFMPEG_CONFIG_MAK" >> config.mak
# Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
cp_if_changed $TMPH config.h
+touch .config
cat > $TMPH <<EOF
/* Generated by ffconf */
cp_if_changed $TMPH libavutil/avconfig.h
+echo "config:$arch:$subarch:$cpu:$target_os:$cc_ident:$FFMPEG_CONFIGURATION" >config.fate
+
test -n "$WARNINGS" && printf "\n$WARNINGS"
# build pkg-config files
version=$3
libs=$4
requires=$5
+enabled $shortname || return 0
cat <<EOF > $name/$name.pc
prefix=$prefix
exec_prefix=\${prefix}
}
pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION"
-pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION"
+pkgconfig_generate libavcore "FFmpeg multimedia shared core utilities library" "$LIBAVCORE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION"
+pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavcore = $LIBAVCORE_VERSION"
pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION"
pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION"
-enabled avfilter &&
- pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION"
-enabled postproc &&
- pkgconfig_generate libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION"
+pkgconfig_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" "libavcore = $LIBAVCORE_VERSION"
+pkgconfig_generate libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION"
pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "libavutil = $LIBAVUTIL_VERSION"