]> git.sesse.net Git - ffmpeg/blobdiff - configure
revert r15812 (E-AC-3 Spectral Extension) pending further review
[ffmpeg] / configure
index 073181b53b95c824a5c7c8db1174299347ee955e..d633444198daeb6da4613346b626726c761654a8 100755 (executable)
--- a/configure
+++ b/configure
@@ -250,6 +250,14 @@ set_all(){
     done
 }
 
+set_weak(){
+    value=$1
+    shift
+    for var; do
+        eval : \${$var:=$value}
+    done
+}
+
 pushvar(){
     for var in $*; do
         eval level=\${${var}_level:=0}
@@ -277,6 +285,37 @@ disable(){
     set_all no $*
 }
 
+enable_weak(){
+    set_weak yes $*
+}
+
+disable_weak(){
+    set_weak no $*
+}
+
+do_enable_deep(){
+    for var; do
+        enabled $var && continue
+        eval sel="\$${var}_select"
+        eval sgs="\$${var}_suggest"
+        pushvar var sgs
+        enable_deep $sel
+        popvar sgs
+        enable_deep_weak $sgs
+        popvar var
+    done
+}
+
+enable_deep(){
+    do_enable_deep $*
+    enable $*
+}
+
+enable_deep_weak(){
+    do_enable_deep $*
+    enable_weak $*
+}
+
 enabled(){
     test "${1#!}" = "$1" && op== || op=!=
     eval test "x\$${1#!}" $op "xyes"
@@ -337,19 +376,21 @@ check_deps(){
         eval dep_all="\$${cfg}_deps"
         eval dep_any="\$${cfg}_deps_any"
         eval dep_sel="\$${cfg}_select"
+        eval dep_sgs="\$${cfg}_suggest"
 
-        pushvar cfg dep_all dep_any dep_sel
-        check_deps $dep_all $dep_any $dep_sel
-        popvar cfg dep_all dep_any dep_sel
+        pushvar cfg dep_all dep_any dep_sel dep_sgs
+        check_deps $dep_all $dep_any $dep_sel $dep_sgs
+        popvar cfg dep_all dep_any dep_sel dep_sgs
 
-        enabled_all $dep_all || disable $cfg
-        enabled_any $dep_any || disable $cfg
+        enabled_all  $dep_all || disable $cfg
+        enabled_any  $dep_any || disable $cfg
         disabled_any $dep_sel && disable $cfg
 
         if enabled $cfg; then
             eval dep_extralibs="\$${cfg}_extralibs"
             test -n "$dep_extralibs" && add_extralibs $dep_extralibs
-            enable $dep_sel
+            enable_deep $dep_sel
+            enable_deep_weak $dep_sgs
         fi
 
         disable ${cfg}_checking
@@ -681,6 +722,8 @@ CONFIG_LIST="
     ffmpeg
     ffplay
     ffserver
+    fft
+    golomb
     gpl
     gprof
     gray
@@ -702,6 +745,7 @@ CONFIG_LIST="
     libvorbis
     libx264
     libxvid
+    mdct
     memalign_hack
     mlib
     mpegaudio_hp
@@ -816,6 +860,11 @@ HAVE_LIST="
     yasm
 "
 
+# options emitted with CONFIG_ prefix but not available on command line
+CONFIG_EXTRA="
+    fft_mmx
+"
+
 CMDLINE_SELECT="
     $ARCH_EXT_LIST
     $CONFIG_LIST
@@ -867,18 +916,57 @@ neon_deps="armv4l"
 ssse3_deps="x86"
 vis_deps="sparc"
 
+# common features
+fft_suggest="fft_mmx"
+fft_mmx_deps="mmx yasm"
+
 # decoders / encoders
+aac_decoder_select="fft mdct"
 ac3_decoder_deps="gpl"
-dxa_decoder_deps="zlib"
+ac3_decoder_select="fft mdct"
+atrac3_decoder_select="fft mdct"
+cavs_decoder_select="golomb"
+cook_decoder_select="fft mdct"
+cscd_decoder_suggest="zlib"
+dca_decoder_select="fft mdct"
+dxa_decoder_select="zlib"
 eac3_decoder_deps="gpl"
-flashsv_decoder_deps="zlib"
-flashsv_encoder_deps="zlib"
-mlp_decoder_deps="mlp_parser"
+eac3_decoder_select="fft mdct"
+ffv1_decoder_select="golomb"
+flac_decoder_select="golomb"
+flac_encoder_select="golomb"
+flashsv_decoder_select="zlib"
+flashsv_encoder_select="zlib"
+h264_decoder_select="golomb"
+imc_decoder_select="fft mdct"
+jpegls_decoder_select="golomb"
+jpegls_encoder_select="golomb"
+loco_decoder_select="golomb"
 mpeg_xvmc_decoder_deps="xvmc"
-png_decoder_deps="zlib"
-png_encoder_deps="zlib"
-zmbv_decoder_deps="zlib"
-zmbv_encoder_deps="zlib"
+nellymoser_decoder_select="fft mdct"
+nellymoser_encoder_select="fft mdct"
+png_decoder_select="zlib"
+png_encoder_select="zlib"
+qdm2_decoder_select="fft mdct"
+shorten_decoder_select="golomb"
+sonic_decoder_select="golomb"
+sonic_encoder_select="golomb"
+sonic_ls_encoder_select="golomb"
+svq3_decoder_select="golomb"
+svq3_decoder_suggest="zlib"
+tiff_decoder_suggest="zlib"
+tiff_encoder_suggest="zlib"
+tscc_decoder_select="zlib"
+vorbis_decoder_select="fft mdct"
+vorbis_encoder_select="fft mdct"
+wmav1_decoder_select="fft mdct"
+wmav1_encoder_select="fft mdct"
+wmav2_decoder_select="fft mdct"
+wmav2_encoder_select="fft mdct"
+zlib_decoder_select="zlib"
+zlib_encoder_select="zlib"
+zmbv_decoder_select="zlib"
+zmbv_encoder_select="zlib"
 
 # external libraries
 libamr_nb_decoder_deps="libamr_nb"
@@ -917,6 +1005,8 @@ dv1394_demuxer_deps="dv1394 dv_demuxer"
 libdc1394_demuxer_deps="libdc1394"
 libnut_demuxer_deps="libnut"
 libnut_muxer_deps="libnut"
+matroska_demuxer_suggest="zlib bzlib"
+mov_demuxer_suggest="zlib"
 mp3_demuxer_deps="mpegaudio_parser"
 oss_demuxer_deps_any="soundcard_h sys_soundcard_h"
 oss_muxer_deps_any="soundcard_h sys_soundcard_h"
@@ -977,10 +1067,6 @@ cpu="generic"
 # OS
 target_os=$(tolower $(uname -s))
 
-# libraries
-enable bzlib
-enable zlib
-
 # configurable options
 enable debug
 enable ffmpeg
@@ -1159,6 +1245,8 @@ case "$arch" in
     ;;
     x86_64|amd64)
         arch="x86_32"
+        enable cmov
+        enable fast_cmov
         enable fast_unaligned
         check_cc <<EOF && enable fast_64bit && arch="x86_64"
         int test[sizeof(char*) - 7];
@@ -1317,6 +1405,11 @@ case $target_os in
         SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
         objformat="win32"
         enable dos_paths
+        check_cpp_condition _mingw.h "(__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_demuxer &&
+            { check_cpp_condition w32api.h "(__W32API_MAJOR_VERSION > 3) || (__W32API_MAJOR_VERSION == 3 && __W32API_MINOR_VERSION >= 12)" ||
+              die "ERROR: avisynth and vfwcap_demuxer require w32api version 3.12 or later."; }
         ;;
     cygwin*)
         target_os=cygwin
@@ -1684,8 +1777,8 @@ if ! enabled_any memalign memalign_hack && enabled need_memalign ; then
     die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
 fi
 
-enabled  zlib && check_lib  zlib.h      zlibVersion -lz   || disable  zlib
-enabled bzlib && check_lib bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
+disabled  zlib || check_lib  zlib.h      zlibVersion -lz   || disable  zlib
+disabled bzlib || check_lib bzlib.h BZ2_bzlibVersion -lbz2 || disable bzlib
 
 # check for some common methods of building with pthread support
 # do this before the optional library checks as some of them require pthreads
@@ -1956,6 +2049,7 @@ enabled_any $PROTOCOL_LIST     && enable protocols
 enabled_any $THREADS_LIST      && enable threads
 
 check_deps $CONFIG_LIST       \
+           $CONFIG_EXTRA      \
            $HAVE_LIST         \
            $DECODER_LIST      \
            $ENCODER_LIST      \
@@ -2165,6 +2259,7 @@ echo "EXTRALIBS=$extralibs" >> config.mak
 print_config ARCH_   $TMPH config.mak $ARCH_LIST
 print_config HAVE_   $TMPH config.mak $HAVE_LIST
 print_config CONFIG_ $TMPH config.mak $CONFIG_LIST       \
+                                      $CONFIG_EXTRA      \
                                       $DECODER_LIST      \
                                       $ENCODER_LIST      \
                                       $PARSER_LIST       \