--enable-libschroedinger enable Dirac de/encoding via libschroedinger [no]
--enable-libspeex enable Speex de/encoding via libspeex [no]
--enable-libtheora enable Theora encoding via libtheora [no]
+ --enable-libtwolame enable MP2 encoding via libtwolame [no]
--enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
--enable-libvo-amrwbenc enable AMR-WB encoding via libvo-amrwbenc [no]
--enable-libvorbis enable Vorbis encoding via libvorbis [no]
--disable-armv6t2 disable armv6t2 optimizations
--disable-vfp disable VFP optimizations
--disable-neon disable NEON optimizations
- --disable-vis disable VIS optimizations
--disable-inline-asm disable use of inline assembler
--disable-yasm disable use of yasm assembler
libdc1394
libfaac
libfdk_aac
+ libfontconfig
libfreetype
libgsm
libilbc
libschroedinger
libspeex
libtheora
+ libtwolame
libvo_aacenc
libvo_amrwbenc
libvorbis
zlib
"
+FEATURE_LIST="
+ gray
+ hardcoded_tables
+ runtime_cpudetect
+ safe_bitstream_reader
+ shared
+ small
+ sram
+ static
+ swscale_alpha
+"
+
HWACCEL_LIST="
dxva2
vaapi
swscale
"
+LICENSE_LIST="
+ gpl
+ nonfree
+ version3
+"
+
PROGRAM_LIST="
avconv
avplay
avserver
"
-CONFIG_LIST="
- $COMPONENT_LIST
- $EXAMPLE_LIST
- $EXTERNAL_LIBRARY_LIST
- $HWACCEL_LIST
- $LIBRARY_LIST
- $PROGRAM_LIST
+SUBSYSTEM_LIST="
dct
doc
error_resilience
fft
- gpl
- gray
- hardcoded_tables
lsp
lzo
mdct
+ network
+ rdft
+"
+
+CONFIG_LIST="
+ $COMPONENT_LIST
+ $EXAMPLE_LIST
+ $EXTERNAL_LIBRARY_LIST
+ $FEATURE_LIST
+ $HWACCEL_LIST
+ $LICENSE_LIST
+ $LIBRARY_LIST
+ $PROGRAM_LIST
+ $SUBSYSTEM_LIST
memalign_hack
neon_clobber_test
- network
- nonfree
pic
pod2man
- rdft
- runtime_cpudetect
- safe_bitstream_reader
- shared
- small
- sram
- static
- swscale_alpha
texi2html
thumb
- version3
xmm_clobber_test
"
armv5te
armv6
armv6t2
+ armv8
neon
vfp
vfpv3
xop
"
+ARCH_EXT_LIST_PPC="
+ altivec
+ dcbzl
+ ldbrx
+ ppc4xx
+"
+
ARCH_EXT_LIST_X86="
$ARCH_EXT_LIST_X86_SIMD
cpunop
ARCH_EXT_LIST="
$ARCH_EXT_LIST_ARM
+ $ARCH_EXT_LIST_PPC
$ARCH_EXT_LIST_X86
- altivec
- ppc4xx
+ loongson
vis
"
+ARCH_FEATURES="
+ aligned_stack
+ fast_64bit
+ fast_clz
+ fast_cmov
+ local_aligned_8
+ local_aligned_16
+"
+
+BUILTIN_LIST="
+ atomic_cas_ptr
+ machine_rw_barrier
+ MemoryBarrier
+ mm_empty
+ rdtsc
+ sync_val_compare_and_swap
+"
HAVE_LIST_CMDLINE="
inline_asm
symver
fast_unaligned
"
+HEADERS_LIST="
+ alsa_asoundlib_h
+ altivec_h
+ arpa_inet_h
+ cdio_paranoia_h
+ cdio_paranoia_paranoia_h
+ dev_bktr_ioctl_bt848_h
+ dev_bktr_ioctl_meteor_h
+ dev_ic_bt8xx_h
+ dev_video_bktr_ioctl_bt848_h
+ dev_video_meteor_ioctl_meteor_h
+ direct_h
+ dlfcn_h
+ dxva_h
+ gsm_h
+ io_h
+ mach_mach_time_h
+ machine_ioctl_bt848_h
+ machine_ioctl_meteor_h
+ malloc_h
+ poll_h
+ sndio_h
+ soundcard_h
+ sys_mman_h
+ sys_param_h
+ sys_resource_h
+ sys_select_h
+ sys_soundcard_h
+ sys_time_h
+ sys_un_h
+ sys_videoio_h
+ unistd_h
+ windows_h
+ winsock2_h
+"
+
MATH_FUNCS="
atanf
atan2f
truncf
"
-HAVE_LIST="
- $ARCH_EXT_LIST
- $(add_suffix _external $ARCH_EXT_LIST)
- $(add_suffix _inline $ARCH_EXT_LIST)
- $ATOMICS_LIST
- $HAVE_LIST_CMDLINE
- $HAVE_LIST_PUB
- $MATH_FUNCS
- $THREADS_LIST
+SYSTEM_FUNCS="
aligned_malloc
- aligned_stack
- alsa_asoundlib_h
- altivec_h
- arpa_inet_h
- asm_mod_q
- atomic_cas_ptr
- atomics_native
- attribute_may_alias
- attribute_packed
- cdio_paranoia_h
- cdio_paranoia_paranoia_h
closesocket
CommandLineToArgvW
CryptGenRandom
- dcbzl
- dev_bktr_ioctl_bt848_h
- dev_bktr_ioctl_meteor_h
- dev_ic_bt8xx_h
- dev_video_bktr_ioctl_bt848_h
- dev_video_meteor_ioctl_meteor_h
- direct_h
- dlfcn_h
dlopen
- dos_paths
- dxva_h
- ebp_available
- ebx_available
- fast_64bit
- fast_clz
- fast_cmov
fcntl
flt_lim
fork
getservbyport
GetSystemTimeAsFileTime
gettimeofday
- gnu_as
- gsm_h
- ibm_asm
inet_aton
- inline_asm_labels
- io_h
isatty
jack_port_get_latency_range
- ldbrx
- libc_msvcrt
- libdc1394_1
- libdc1394_2
- local_aligned_16
- local_aligned_8
localtime_r
- loongson
mach_absolute_time
- mach_mach_time_h
- machine_ioctl_bt848_h
- machine_ioctl_meteor_h
- machine_rw_barrier
- malloc_h
MapViewOfFile
memalign
- MemoryBarrier
mkstemp
- mm_empty
mmap
mprotect
nanosleep
- poll_h
posix_memalign
- pragma_deprecated
- rdtsc
sched_getaffinity
- sdl
SetConsoleTextAttribute
setmode
setrlimit
Sleep
- sndio_h
- socklen_t
- soundcard_h
strerror_r
strptime
+ sysconf
+ sysctl
+ usleep
+ VirtualAlloc
+"
+
+TOOLCHAIN_FEATURES="
+ asm_mod_q
+ attribute_may_alias
+ attribute_packed
+ ebp_available
+ ebx_available
+ gnu_as
+ ibm_asm
+ inline_asm_labels
+ pragma_deprecated
+ symver_asm_label
+ symver_gnu_asm
+ vfp_args
+ xform_asm
+ xmm_clobbers
+"
+
+TYPES_LIST="
+ socklen_t
struct_addrinfo
struct_group_source_req
struct_ip_mreq_source
struct_sockaddr_sa_len
struct_sockaddr_storage
struct_v4l2_frmivalenum_discrete
- symver_asm_label
- symver_gnu_asm
- sync_val_compare_and_swap
- sys_mman_h
- sys_param_h
- sys_resource_h
- sys_select_h
- sys_soundcard_h
- sys_time_h
- sys_un_h
- sys_videoio_h
- sysconf
- sysctl
+"
+
+HAVE_LIST="
+ $ARCH_EXT_LIST
+ $(add_suffix _external $ARCH_EXT_LIST)
+ $(add_suffix _inline $ARCH_EXT_LIST)
+ $ARCH_FEATURES
+ $ATOMICS_LIST
+ $BUILTIN_LIST
+ $HAVE_LIST_CMDLINE
+ $HAVE_LIST_PUB
+ $HEADERS_LIST
+ $MATH_FUNCS
+ $SYSTEM_FUNCS
+ $THREADS_LIST
+ $TOOLCHAIN_FEATURES
+ $TYPES_LIST
+ atomics_native
+ dos_paths
+ libc_msvcrt
+ libdc1394_1
+ libdc1394_2
+ sdl
threads
- unistd_h
- usleep
vdpau_x11
- vfp_args
- VirtualAlloc
- windows_h
- winsock2_h
- xform_asm
xlib
- xmm_clobbers
"
# options emitted with CONFIG_ prefix but not available on the command line
aandcttables
ac3dsp
audio_frame_queue
+ cabac
dsputil
gcrypt
golomb
rtpdec
rtpenc_chain
sinewin
+ tpeldsp
videodsp
vp3dsp
"
armv5te_deps="arm"
armv6_deps="arm"
armv6t2_deps="arm"
+armv8_deps="aarch64"
neon_deps_any="aarch64 arm"
vfp_deps_any="aarch64 arm"
vfpv3_deps="vfp"
altivec_deps="ppc"
ppc4xx_deps="ppc"
-vis_deps="sparc"
-
cpunop_deps="i686"
x86_64_select="i686"
x86_64_suggest="fast_cmov"
eamad_decoder_select="aandcttables dsputil mpegvideo"
eatgq_decoder_select="aandcttables dsputil"
eatqi_decoder_select="aandcttables dsputil error_resilience mpegvideo"
+exr_decoder_deps="zlib"
ffv1_decoder_select="golomb rangecoder"
ffv1_encoder_select="rangecoder"
ffvhuff_decoder_select="huffyuv_decoder"
ffvhuff_encoder_select="huffyuv_encoder"
-fic_decoder_select="dsputil golomb"
+fic_decoder_select="golomb"
flac_decoder_select="golomb"
flac_encoder_select="dsputil golomb lpc"
flashsv_decoder_deps="zlib"
h263_encoder_select="aandcttables h263dsp mpegvideoenc"
h263i_decoder_select="h263_decoder"
h263p_encoder_select="h263_encoder"
-h264_decoder_select="golomb h264chroma h264dsp h264pred h264qpel videodsp"
+h264_decoder_select="cabac golomb h264chroma h264dsp h264pred h264qpel videodsp"
h264_decoder_suggest="error_resilience"
-hevc_decoder_select="dsputil golomb videodsp"
+hevc_decoder_select="cabac dsputil golomb videodsp"
huffyuv_decoder_select="dsputil"
huffyuv_encoder_select="dsputil huffman"
iac_decoder_select="imc_decoder"
sp5x_decoder_select="mjpeg_decoder"
svq1_decoder_select="hpeldsp"
svq1_encoder_select="aandcttables dsputil hpeldsp mpegvideoenc"
-svq3_decoder_select="h264_decoder hpeldsp mpegvideo"
+svq3_decoder_select="h264_decoder hpeldsp tpeldsp"
svq3_decoder_suggest="zlib"
tak_decoder_select="dsputil"
theora_decoder_select="vp3_decoder"
vp6_decoder_select="h264chroma hpeldsp huffman videodsp vp3dsp"
vp6a_decoder_select="vp6_decoder"
vp6f_decoder_select="vp6_decoder"
+vp7_decoder_select="h264pred videodsp"
vp8_decoder_select="h264pred videodsp"
vp9_decoder_select="videodsp"
webp_decoder_select="vp8_decoder"
wmv3_vdpau_hwaccel_select="vc1_vdpau_hwaccel"
# parsers
-h264_parser_select="golomb h264chroma h264dsp h264pred h264qpel videodsp"
+h264_parser_select="h264_decoder"
mpeg4video_parser_select="error_resilience h263dsp mpegvideo"
mpegvideo_parser_select="error_resilience mpegvideo"
vc1_parser_select="mpegvideo"
libspeex_encoder_deps="libspeex"
libspeex_encoder_select="audio_frame_queue"
libtheora_encoder_deps="libtheora"
+libtwolame_encoder_deps="libtwolame"
libvo_aacenc_encoder_deps="libvo_aacenc"
libvo_aacenc_encoder_select="audio_frame_queue"
libvo_amrwbenc_encoder_deps="libvo_amrwbenc"
_cflags_speed='-fast'
_cflags_size='-O1'
_flags_filter=ccc_flags
- elif $_cc --vsn 2>/dev/null | grep -q "ARM C/C++ Compiler"; then
+ elif $_cc --vsn 2>/dev/null | grep -Eq "ARM (C/C\+\+ )?Compiler"; then
test -d "$sysroot" || die "No valid sysroot specified."
_type=armcc
- _ident=$($_cc --vsn | head -n1)
+ _ident=$($_cc --vsn | head -n1 | sed 's/.*: //')
armcc_conf="$PWD/armcc.conf"
$_cc --arm_linux_configure \
--arm_linux_config_file="$armcc_conf" \
elif enabled ppc; then
+ disable ldbrx
+
case $(tolower $cpu) in
601|ppc601|powerpc601)
cpuflags="-mcpu=601"
e500v2)
cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
disable altivec
+ disable dcbzl
;;
e500)
cpuflags="-mcpu=8540 -mhard-float"
disable altivec
+ disable dcbzl
;;
esac
case $cpu in
cypress|f93[04]|tsc701|sparcl*|supersparc|hypersparc|niagara|v[789])
cpuflags="-mcpu=$cpu"
- disable vis
;;
ultrasparc*|niagara[234])
cpuflags="-mcpu=$cpu"
check_inline_asm inline_asm_labels '"1:\n"'
if enabled aarch64; then
+ enabled armv8 && check_insn armv8 'prfm pldl1strm, [x0]'
# internal assembler in clang 3.3 does not support this instruction
enabled neon && check_insn neon 'ext v0.8B, v0.8B, v1.8B, #1'
enabled vfp && check_insn vfp 'fmadd d0, d0, d1, d2'
enabled altivec || warn "Altivec disabled, possibly missing --cpu flag"
fi
-elif enabled sparc; then
-
- enabled vis && check_inline_asm vis '"pdist %f0, %f0, %f0"'
-
elif enabled x86; then
check_builtin rdtsc intrin.h "__rdtsc()"
fi
if ! disabled network; then
- check_type "sys/types.h sys/socket.h" socklen_t
+ check_func getaddrinfo $network_extralibs
+ check_func getservbyport $network_extralibs
+ check_func inet_aton $network_extralibs
+
check_type netdb.h "struct addrinfo"
check_type netinet/in.h "struct group_source_req" -D_BSD_SOURCE
check_type netinet/in.h "struct ip_mreq_source" -D_BSD_SOURCE
check_type netinet/in.h "struct ipv6_mreq" -D_DARWIN_C_SOURCE
- check_type netinet/in.h "struct sockaddr_in6"
check_type poll.h "struct pollfd"
- check_type "sys/types.h sys/socket.h" "struct sockaddr_storage"
- check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len
check_type netinet/sctp.h "struct sctp_event_subscribe"
- check_func getaddrinfo $network_extralibs
- check_func getservbyport $network_extralibs
- check_func inet_aton $network_extralibs
+ check_struct "sys/types.h sys/socket.h" "struct sockaddr" sa_len
+ check_type netinet/in.h "struct sockaddr_in6"
+ check_type "sys/types.h sys/socket.h" "struct sockaddr_storage"
+ check_type "sys/types.h sys/socket.h" socklen_t
+
# Prefer arpa/inet.h over winsock2
if check_header arpa/inet.h ; then
check_func closesocket
{ check_func_headers winsock2.h closesocket -lws2_32 &&
network_extralibs="-lws2_32"; } || disable winsock2_h network
check_func_headers ws2tcpip.h getaddrinfo $network_extralibs
+
check_type ws2tcpip.h socklen_t
check_type ws2tcpip.h "struct addrinfo"
check_type ws2tcpip.h "struct group_source_req"
check_type ws2tcpip.h "struct ip_mreq_source"
check_type ws2tcpip.h "struct ipv6_mreq"
check_type winsock2.h "struct pollfd"
+ check_struct winsock2.h "struct sockaddr" sa_len
check_type ws2tcpip.h "struct sockaddr_in6"
check_type ws2tcpip.h "struct sockaddr_storage"
- check_struct winsock2.h "struct sockaddr" sa_len
else
disable network
fi
fi
-# Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
-check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; }
+check_builtin atomic_cas_ptr atomic.h "void **ptr; void *oldval, *newval; atomic_cas_ptr(ptr, oldval, newval)"
+check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()"
+check_builtin MemoryBarrier windows.h "MemoryBarrier()"
+check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)"
+
+check_func_headers malloc.h _aligned_malloc && enable aligned_malloc
+check_func ${malloc_prefix}memalign && enable memalign
+check_func ${malloc_prefix}posix_memalign && enable posix_memalign
check_func fcntl
check_func fork
-check_func_headers stdlib.h getenv
check_func gethrtime
check_func getopt
check_func getrusage
-check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
check_func gettimeofday
check_func isatty
check_func localtime_r
check_func mach_absolute_time
-check_func ${malloc_prefix}memalign && enable memalign
check_func mkstemp
check_func mmap
check_func mprotect
-check_func ${malloc_prefix}posix_memalign && enable posix_memalign
-check_func_headers malloc.h _aligned_malloc && enable aligned_malloc
+# Solaris has nanosleep in -lrt, OpenSolaris no longer needs that
+check_func nanosleep || { check_func nanosleep -lrt && add_extralibs -lrt; }
+check_func sched_getaffinity
check_func setrlimit
check_func strerror_r
check_func strptime
-check_func sched_getaffinity
-check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)"
-check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()"
-check_builtin atomic_cas_ptr atomic.h "void **ptr; void *oldval, *newval; atomic_cas_ptr(ptr, oldval, newval)"
-check_builtin MemoryBarrier windows.h "MemoryBarrier()"
check_func sysconf
check_func sysctl
check_func usleep
+
check_func_headers io.h setmode
-check_lib2 "windows.h shellapi.h" CommandLineToArgvW -lshell32
-check_lib2 "windows.h wincrypt.h" CryptGenRandom -ladvapi32
-check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
+check_func_headers stdlib.h getenv
+
check_func_headers windows.h GetProcessAffinityMask
check_func_headers windows.h GetProcessTimes
check_func_headers windows.h GetSystemTimeAsFileTime
check_header windows.h
check_header X11/extensions/XvMClib.h
+check_lib2 "windows.h shellapi.h" CommandLineToArgvW -lshell32
+check_lib2 "windows.h wincrypt.h" CryptGenRandom -ladvapi32
+check_lib2 "windows.h psapi.h" GetProcessMemoryInfo -lpsapi
+
+check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
+
if ! disabled w32threads && ! enabled pthreads; then
check_func_headers "windows.h process.h" _beginthreadex &&
enable w32threads || disable w32threads
enabled gnutls && require_pkg_config gnutls gnutls/gnutls.h gnutls_global_init
enabled libfaac && require2 libfaac "stdint.h faac.h" faacEncGetVersion -lfaac
enabled libfdk_aac && require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac
+enabled libfontconfig && require_pkg_config fontconfig "fontconfig/fontconfig.h" FcInit
enabled libfreetype && require_pkg_config freetype2 "ft2build.h FT_FREETYPE_H" FT_Init_FreeType
enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do
check_lib "${gsm_hdr}" gsm_create -lgsm && break;
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 libopencv && require_pkg_config opencv opencv/cv.h cvCreateImageHeader
-enabled libopenjpeg && { { check_header openjpeg.h && check_lib2 openjpeg.h opj_version -lopenjpeg; } ||
- { require_pkg_config libopenjpeg1 openjpeg.h opj_version; } }
+enabled libopenjpeg && { { check_header openjpeg.h && check_lib2 openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC; } ||
+ { require_pkg_config libopenjpeg1 openjpeg.h opj_version -DOPJ_STATIC; } }
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 librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init
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 libtwolame && require libtwolame twolame.h twolame_init -ltwolame
enabled libvo_aacenc && require libvo_aacenc vo-aacenc/voAAC.h voGetAACEncAPI -lvo-aacenc
enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc
enabled libvorbis && require libvorbis vorbis/vorbisenc.h vorbis_info_init -lvorbisenc -lvorbis -logg
{ check_cpp_condition x264.h "X264_BUILD >= 118" ||
die "ERROR: libx264 version must be >= 0.118."; }
enabled libx265 && require_pkg_config x265 x265.h x265_encoder_encode &&
- { check_cpp_condition x265.h "X265_BUILD >= 9" ||
- die "ERROR: libx265 version must be >= 9."; }
+ { check_cpp_condition x265.h "X265_BUILD >= 13" ||
+ die "ERROR: libx265 version must be >= 13."; }
enabled libxavs && require libxavs xavs.h xavs_encoder_encode -lxavs
enabled libxvid && require libxvid xvid.h xvid_global -lxvidcore
enabled openssl && { check_lib openssl/ssl.h SSL_library_init -lssl -lcrypto ||
add_cflags -Wno-missing-variable-declarations
add_cflags -Wno-empty-statement
elif enabled armcc; then
+ add_cflags -W${armcc_opt},--diag_suppress=4343 # hardfp compat
+ add_cflags -W${armcc_opt},--diag_suppress=3036 # using . as system include dir
# 2523: use of inline assembler is deprecated
add_cflags -W${armcc_opt},--diag_suppress=2523
add_cflags -W${armcc_opt},--diag_suppress=1207
echo "PPC 4xx optimizations ${ppc4xx-no}"
echo "dcbzl available ${dcbzl-no}"
fi
-if enabled sparc; then
- echo "VIS enabled ${vis-no}"
-fi
echo "debug symbols ${debug-no}"
echo "optimize for size ${small-no}"
echo "optimizations ${optimizations-no}"