--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"
}
$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
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"
vdpau_deps="vdpau_vdpau_h vdpau_vdpau_x11_h"
# parsers
-h264_parser_select="golomb h264dsp"
+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"
gopher_protocol_deps="network"
http_protocol_deps="network"
http_protocol_select="tcp_protocol"
+mmsh_protocol_select="http_protocol"
mmst_protocol_deps="network"
rtmp_protocol_select="tcp_protocol"
rtp_protocol_select="udp_protocol"
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"
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 \
yuv4mpegpipe=yuv4mpeg \
mpg_test_deps="mpeg1system_muxer mpegps_demuxer"
-pixdesc_be_test_deps="bigendian"
-pixdesc_le_test_deps="!bigendian"
+
+set_ne_test_deps pixdesc
+set_ne_test_deps pixfmts_crop
+set_ne_test_deps pixfmts_hflip
+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
# configurable options
enable avcodec
+enable avcore
enable avdevice
enable avfilter
enable avformat
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"
cc_type=clang
$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
}
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
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 && { check_lib2 "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_dec_init_ver -lvpx &&
- check_lib2 "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_enc_init_ver -lvpx ||
- die "ERROR: libvpx version must be >=0.9.1"; }
+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
# 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
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}"
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
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 ${name#lib} || 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"