--extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]
--extra-cxxflags=ECFLAGS add ECFLAGS to CXXFLAGS [$CXXFLAGS]
--extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]
+ --extra-ldexeflags=ELDFLAGS add ELDFLAGS to LDEXEFLAGS [$LDEXEFLAGS]
--extra-libs=ELIBS add ELIBS [$ELIBS]
--extra-version=STRING version string suffix []
--optflags=OPTFLAGS override optimization-related compiler flags
append LDFLAGS $($ldflags_filter "$@")
}
+add_ldexeflags(){
+ append LDEXEFLAGS $($ldflags_filter "$@")
+}
+
add_stripflags(){
append ASMSTRIPFLAGS "$@"
}
local_aligned_8
local_aligned_16
local_aligned_32
+ simd_align_16
"
BUILTIN_LIST="
winsock2_h
"
+INTRINSICS_LIST="
+ intrinsics_neon
+"
+
MATH_FUNCS="
atanf
atan2f
$HAVE_LIST_CMDLINE
$HAVE_LIST_PUB
$HEADERS_LIST
+ $INTRINSICS_LIST
$MATH_FUNCS
$SYSTEM_FUNCS
$THREADS_LIST
blockdsp
bswapdsp
cabac
- dsputil
dvprofile
exif
fdctdsp
huffyuvdsp
huffyuvencdsp
idctdsp
+ iirfilter
intrax8
lgplv3
llauddsp
llviddsp
lpc
+ me_cmp
mpeg_er
mpegaudio
mpegaudiodsp
armv6t2_deps="arm"
armv8_deps="aarch64"
neon_deps_any="aarch64 arm"
+intrinsics_neon_deps="neon"
vfp_deps_any="aarch64 arm"
vfpv3_deps="vfp"
fast_64bit_if_any="aarch64 alpha ia64 mips64 parisc64 ppc64 sparc64 x86_64"
fast_clz_if_any="aarch64 alpha avr32 mips ppc x86"
fast_unaligned_if_any="aarch64 ppc x86"
-
-need_memalign="altivec neon sse"
+simd_align_16_if_any="altivec neon sse"
# system capabilities
# subsystems
dct_select="rdft"
-dsputil_select="fdctdsp idctdsp pixblockdsp"
-error_resilience_select="dsputil"
+error_resilience_select="me_cmp"
frame_thread_encoder_deps="encoders threads"
intrax8_select="error_resilience"
mdct_select="fft"
rdft_select="fft"
+me_cmp_select="fdctdsp idctdsp pixblockdsp"
mpeg_er_select="error_resilience"
mpegaudio_select="mpegaudiodsp"
mpegaudiodsp_select="dct"
-mpegvideo_select="blockdsp dsputil h264chroma hpeldsp idctdsp videodsp"
-mpegvideoenc_select="dsputil mpegvideo pixblockdsp qpeldsp"
+mpegvideo_select="blockdsp h264chroma hpeldsp idctdsp me_cmp videodsp"
+mpegvideoenc_select="me_cmp mpegvideo pixblockdsp qpeldsp"
# decoders / encoders
aac_decoder_select="mdct sinewin"
-aac_encoder_select="audio_frame_queue mdct sinewin"
+aac_encoder_select="audio_frame_queue iirfilter mdct sinewin"
aac_latm_decoder_select="aac_decoder aac_latm_parser"
ac3_decoder_select="ac3_parser ac3dsp bswapdsp mdct"
ac3_fixed_decoder_select="ac3_parser ac3dsp bswapdsp mdct"
-ac3_encoder_select="ac3dsp audiodsp dsputil mdct"
-ac3_fixed_encoder_select="ac3dsp audiodsp dsputil mdct"
+ac3_encoder_select="ac3dsp audiodsp mdct me_cmp"
+ac3_fixed_encoder_select="ac3dsp audiodsp mdct me_cmp"
aic_decoder_select="golomb idctdsp"
alac_encoder_select="lpc"
als_decoder_select="bswapdsp"
cscd_decoder_select="lzo"
cscd_decoder_suggest="zlib"
dca_decoder_select="mdct"
-dirac_decoder_select="dsputil dwt golomb videodsp mpegvideoenc"
+dirac_decoder_select="dwt golomb videodsp mpegvideoenc"
dnxhd_decoder_select="blockdsp idctdsp"
dnxhd_encoder_select="aandcttables blockdsp fdctdsp idctdsp mpegvideoenc pixblockdsp"
dvvideo_decoder_select="dvprofile idctdsp"
-dvvideo_encoder_select="dsputil dvprofile fdctdsp pixblockdsp"
+dvvideo_encoder_select="dvprofile fdctdsp me_cmp pixblockdsp"
dxa_decoder_select="zlib"
eac3_decoder_select="ac3_decoder"
eac3_encoder_select="ac3_encoder"
mpc8_decoder_select="mpegaudiodsp"
mpeg_xvmc_decoder_deps="X11_extensions_XvMClib_h"
mpeg_xvmc_decoder_select="mpeg2video_decoder"
+mpegvideo_decoder_select="error_resilience mpeg_er mpegvideo"
mpeg1video_decoder_select="error_resilience mpeg_er mpegvideo"
mpeg1video_encoder_select="aandcttables mpegvideoenc h263dsp"
mpeg2video_decoder_select="error_resilience mpeg_er mpegvideo"
ra_144_encoder_select="audio_frame_queue lpc audiodsp"
ra_144_decoder_select="audiodsp"
ralf_decoder_select="golomb"
-rawvideo_decoder_select="dsputil bswapdsp"
-rtjpeg_decoder_select="dsputil"
+rawvideo_decoder_select="bswapdsp"
+rtjpeg_decoder_select="me_cmp"
rv10_decoder_select="error_resilience h263_decoder h263dsp mpeg_er"
rv10_encoder_select="h263_encoder"
rv20_decoder_select="error_resilience h263_decoder h263dsp mpeg_er"
rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo videodsp"
shorten_decoder_select="golomb"
sipr_decoder_select="lsp"
-snow_decoder_select="dsputil dwt h264qpel hpeldsp rangecoder"
-snow_encoder_select="aandcttables dsputil dwt h264qpel hpeldsp mpegvideoenc rangecoder"
+snow_decoder_select="dwt h264qpel hpeldsp rangecoder"
+snow_encoder_select="aandcttables dwt h264qpel hpeldsp me_cmp mpegvideoenc rangecoder"
sonic_decoder_select="golomb rangecoder"
sonic_encoder_select="golomb rangecoder"
sonic_ls_encoder_select="golomb rangecoder"
sp5x_decoder_select="mjpeg_decoder"
svq1_decoder_select="hpeldsp"
-svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc"
+svq1_encoder_select="aandcttables hpeldsp me_cmp mpegvideoenc"
svq3_decoder_select="h264_decoder hpeldsp tpeldsp"
svq3_decoder_suggest="zlib"
tak_decoder_select="audiodsp"
dctdnoiz_filter_select="dct"
delogo_filter_deps="gpl"
deshake_filter_deps="avcodec"
-deshake_filter_select="dsputil"
+deshake_filter_select="me_cmp"
drawtext_filter_deps="libfreetype"
ebur128_filter_deps="gpl"
flite_filter_deps="libflite"
movie_filter_deps="avcodec avformat"
mp_filter_deps="gpl avcodec swscale inline_asm"
mpdecimate_filter_deps="gpl avcodec"
-mpdecimate_filter_select="dsputil pixblockdsp"
+mpdecimate_filter_select="me_cmp pixblockdsp"
mptestsrc_filter_deps="gpl"
negate_filter_deps="lut_filter"
perspective_filter_deps="gpl"
showspectrum_filter_deps="avcodec"
showspectrum_filter_select="rdft"
spp_filter_deps="gpl avcodec"
-spp_filter_select="dsputil fft idctdsp fdctdsp pixblockdsp"
+spp_filter_select="fft idctdsp fdctdsp me_cmp pixblockdsp"
stereo3d_filter_deps="gpl"
subtitles_filter_deps="avformat avcodec libass"
super2xsai_filter_deps="gpl"
arch_default=$(uname -m)
fi
cpu="generic"
+intrinsics="none"
# configurable options
enable $PROGRAM_LIST
--extra-ldflags=*)
add_ldflags $optval
;;
+ --extra-ldexeflags=*)
+ add_ldexeflags $optval
+ ;;
--extra-libs=*)
add_extralibs $optval
;;
enabled vfp && check_insn vfp 'fadds s0, s0, s0'
enabled vfpv3 && check_insn vfpv3 'vmov.f32 s0, #1.0'
- [ $target_os = linux ] ||
+ [ $target_os = linux ] || [ $target_os = android ] ||
map 'enabled_any ${v}_external ${v}_inline || disable $v' \
$ARCH_EXT_LIST_ARM
fi
+check_code cc arm_neon.h "int16x8_t test = vdupq_n_s16(0)" && enable intrinsics_neon
+
check_ldflags -Wl,--as-needed
if check_func dlopen; then
check_lib openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC ||
die "ERROR: libopenjpeg not found"; }
enabled libopus && require_pkg_config opus opus_multistream.h opus_multistream_decoder_create
-enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h pa_simple_new
+enabled libpulse && require_pkg_config libpulse pulse/pulseaudio.h pa_context_new
enabled libquvi && require_pkg_config libquvi quvi/quvi.h quvi_init
enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init
enable dxva2_lib
! enabled_any memalign posix_memalign aligned_malloc &&
- enabled_any $need_memalign && enable memalign_hack
+ enabled simd_align_16 && enable memalign_hack
# add_dep lib dep
# -> enable ${lib}_deps_${dep}
merge_deps libavfilter $FILTER_LIST
+map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST
+
for thread in $THREADS_LIST; do
if enabled $thread; then
test -n "$thread_type" &&
endif
CC_IDENT=$cc_ident
ARCH=$arch
+INTRINSICS=$intrinsics
CC=$cc
CXX=$cxx
AS=$as
DEPWINDRES=$dep_cc
DOXYGEN=$doxygen
LDFLAGS=$LDFLAGS
+LDEXEFLAGS=$LDEXEFLAGS
SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
ASMSTRIPFLAGS=$ASMSTRIPFLAGS
YASMFLAGS=$YASMFLAGS
pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs"
pkgconfig_generate libavfilter "FFmpeg audio/video filtering library" "$LIBAVFILTER_VERSION" "$extralibs"
pkgconfig_generate libpostproc "FFmpeg postprocessing library" "$LIBPOSTPROC_VERSION" ""
-pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$extralibs"
+pkgconfig_generate libavresample "Libav audio resampling library" "$LIBAVRESAMPLE_VERSION" "$LIBM"
pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM"
pkgconfig_generate libswresample "FFmpeg audio resampling library" "$LIBSWRESAMPLE_VERSION" "$LIBM"