1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-02 03:06:28 +02:00
Commit Graph

2284 Commits

Author SHA1 Message Date
Diego Biurrun
844c68520e configure: Add --disable-all command line option
This option disables all programs, libraries and other parts of Libav
that get built as part of the compilation process.
2012-12-28 19:17:02 +01:00
Diego Biurrun
ed40b6bf07 configure: cosmetics: Separate hwaccel dependencies from decoders/encoders
Also move mpegvideo_select statement to the correct position.
2012-12-23 18:51:52 +01:00
Diego Biurrun
0a0e340f5b configure: Make avconv depend on null, anull and resample filters
Building avconv without that functionality makes little sense.
2012-12-21 00:21:53 +01:00
Diego Biurrun
511cf612ac miscellaneous typo fixes 2012-12-21 00:18:34 +01:00
Ronald S. Bultje
8c53d39e7f lavc: introduce VideoDSPContext
Move some functions from dsputil. The idea is that videodsp contains
functions that are useful for a large and varied set of video decoders.
Currently, it contains emulated_edge_mc() and prefetch().

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-12-20 13:40:45 +01:00
Diego Biurrun
ea061af15a configure: formatting cosmetics 2012-12-18 13:36:50 +01:00
Mans Rullgard
d4f8cecc86 configure: fix automatic processing of _extralibs in check_deps
This fixes the automatic use of $foo_extralibs when feature foo
is enabled indirectly through a _select or _suggest.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-09 21:20:58 +00:00
Diego Biurrun
998c1ee10c configure: Have protocols select network code instead of depending on it 2012-12-09 14:56:12 +01:00
Paul B Mahol
57231e4d5b tak: demuxer, parser, and decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-12-07 16:15:02 -05:00
Mans Rullgard
b57c1da81e arm: detect cpu features at runtime on Linux
This allows compiling optimised functions for features not enabled
in the core build and selecting these at runtime if the system has
the necessary support.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:04 +00:00
Mans Rullgard
b326755989 arm: rename ARMVFP config symbol to VFP
This is consistent with usual ARM nomenclature as well as with the
VFPV3 and NEON symbols which both lack the ARM prefix.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:04 +00:00
Mans Rullgard
637606de2d configure: arm: make _inline arch ext symbols depend on inline_asm
This makes --disable-inline-asm work as expected.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
7f2b3dcabd configure: arm: check inline and external asm support for extensions
This tests instruction set support in both inline and external asm.
If both fail, the base config option is disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
c6ebc9faa2 configure: add check_insn function
The check_insn function tests an instruction in both inline asm and
standalone assembly, and sets _external/_inline config properties
accordingly.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
7fd90119bb configure: clean up check_inline_asm and check_as functions
The check_inline_asm function should check the actual C compiler,
not the one used for assembly files.  Usually these are the same,
but they might be different, typically when using a compiler other
than gcc.

The check_as should, as its name suggests, test the type of input
the AS command is used with, i.e. a standalond assembly (.S) file.

Finally, check for gnu assembler using the modified check_as as
this reflects actual usage.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
f0fe245bc3 configure: arm: set fast_clz and fast_unaligned in cpuflags section
These are properties of the targeted core and do not depend on
specific assembly support in the toolchain which if missing will
render the controlling options here disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
1234c66a31 configure: arm: detect toolchain default arch version
Probe for the toolchain default architecture version if no --cpu flag
is present or an unknown cpu is specified.  Works with gcc, clang and
armcc.

This allows configuring based on the arch version even if it is not
explicitly specified to configure.  It also causes an explicit -march
flag to be added to CFLAGS and ASFLAGS, which in turn lets us do
proper instruction set tests with the assembler.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Mans Rullgard
9ebd45c2d5 configure: do not bypass cpuflags section if --cpu not given
This will allow arch-specific ways of determining the target
variant when none is specified on the command line.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-07 16:54:03 +00:00
Luca Barbato
1944d532a8 ppc: always use pic for shared libraries
CC: libav-stable@libav.org
2012-12-03 22:53:30 +01:00
Martin Storsjö
eb7018d2fc configure: Strip ordinals from mingw generated def files
The def files are used for generating import libraries for
other toolchains (in particular, for generating import libraries
for MSVC for DLLs built with mingw).

The def files produced by mingw/gcc contains ordinals for each
exported function. When MSVC tools generate import libraries
from such a def file, MSVC links to the DLL by the ordinals
instead of linking by name.

Since the def files aren't maintained by hand, the ordinal
numbers are assigned (more or less) randomly and any caller
linking to the libs by ordinals will break as soon as the libraries
export more/fewer functions.

Therefore, strip out the ordinals from the generated def files,
to make users link to the libraries by name.

Callers linking to the DLLs using the gcc provided import library
link by name as they should.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-12-03 13:39:47 +02:00
Mans Rullgard
66371c2851 configure: arm: detect default thumb state of compiler
This makes configure honour the compiler default if thumb is not
explicitly enabled or disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-03 11:06:06 +00:00
Diego Biurrun
31f16dc1a1 build: Make the ISMV muxer select the MOV muxer
They share the same code, so building one w/o the other makes no sense.
2012-12-03 01:20:10 +01:00
Mans Rullgard
81dfa21ec9 configure: move arm arch extensions to a separate variable
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-03 00:15:19 +00:00
Diego Biurrun
d173ede1b7 configure: avplay now depends on avresample 2012-12-02 23:39:35 +01:00
Mans Rullgard
7e9e7cc236 configure: fix indentation in option parsing loop
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-12-01 23:16:23 +00:00
Martin Storsjö
3bbe63d1a4 configure: Use headers in the check for _beginthreadex for w32threads
When targeting the metro API subset, this function still exists in
the link libraries, but is excluded from the headers. This makes
sure w32threads is automatically disabled when targeting this API
subset (since not all the necessary functions for it are available).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-30 16:57:02 +02:00
Martin Storsjö
7e6a11bcf7 avutil: Use a configure check to enable windows console functions
Not all versions or API subsets of windows have these functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-30 16:56:57 +02:00
Martin Storsjö
15caccb9be cmdutils: Use a configure check for enabling CommandLineToArgvW
This simplifies the condition to avoid hardcoding the systems
where the function exists. This also simplifies support for
newer Windows API subsets where this function doesn't exist,
such as Windows Phone 8 and the "metro" API subset of Windows 8.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-29 18:19:36 +02:00
Martin Storsjö
54fd593a0e configure: Enable avconv filter dependencies automatically
This makes sure minimal configurations such as
"--disable-everything --enable-avconv" will enable the filters
necessary for running avconv, instead of just keeping avconv
disabled (even if the user specified "--enable-avconv").

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-27 17:05:01 +02:00
Diego Biurrun
d89f2fa970 configure: Add separate list for libraries and use where appropriate 2012-11-26 22:46:07 +01:00
Sean McGovern
f2ce813e37 configure: suncc: Add compiler arch support for Nehalem & Sandy Bridge
GCC does not appear to have a -march= string for Westmere, which is a
bit surprising as it has a few more instructions than a Nehalem, but
a few less than a Sandy Bridge.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-11-25 14:15:30 +01:00
Mans Rullgard
33db40f8d3 configure: sort cpuflags section by architecture
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:07:23 +00:00
Mans Rullgard
457cc333b4 configure: properly support DEC/Compaq compiler
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:07:11 +00:00
Mans Rullgard
c262649291 build: add rules to generate preprocessed source files
This is useful for debugging.  Dependencies for these files are not
generated due to limitations in many compilers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-23 12:03:32 +00:00
Diego Biurrun
3bd1eacd2a configure: Refactor CPPFLAGS settings for glibc/uclibc
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-18 12:00:18 +00:00
Mans Rullgard
5873b623a9 configure: add basic support for ARM AArch64
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-18 12:00:18 +00:00
Mans Rullgard
8f7b814f54 build: set -U__STRICT_ANSI__ for newlib
This is (erroneously) required to enable various things in the
newlib headers.  As cygwin uses newlib, it is covered by this.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-18 12:00:17 +00:00
Mans Rullgard
5af530f5a9 parisc: work around bug in gcc 4.3 and later
A bug in tail call optimisation in gcc 4.3 and later on parisc causes
numerous tests to fail.  Disabling this optimisation gives a working
build.  See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55023

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-17 17:54:28 +00:00
Martin Storsjö
9eded0fe41 configure: Check for -Werror parameters on clang
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-15 18:22:03 +02:00
Diego Biurrun
e28b7553ae configure: Add option to disable all command line programs 2012-11-14 23:03:36 +01:00
Mans Rullgard
7f1fcaf0e6 ppc: do not pass redundant compiler flags
The -mpowerpc64 and -mpowerpc-gfxopt flags are implicitly set by
-mcpu as needed.  Passing them explicitly is redundant and can
conflict with user-supplied flags.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-14 13:50:43 +00:00
Mans Rullgard
9eda2a85c6 configure: remove support for -n flag in print_enabled()
This flag is no longer used.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-11-12 10:30:02 +00:00
Diego Biurrun
b8e8a07c6c x86: Require an assembler able to cope with AVX instructions
All modern assemblers have this capability.  Older NASM versions
that lack the capability produce code that crashes at runtime,
so it's better to error out during the build process instead.

CC: libav-stable@libav.org
2012-11-11 20:43:28 +01:00
Anton Khirnov
e5e1a06e44 configure: add lavu dependency to lavr/lavfi .pc files 2012-11-11 15:45:18 +01:00
James Zern
12776d5d2a libvpxenc: Allow enabling constrained quality (CQ) mode
The CQ mode was introduced in libvpx 0.9.6.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-11-08 00:01:54 +02:00
Mans Rullgard
d16c4aebba configure: fix print_config() with broke awks
Some awk versions do not treat the result of unary + on a (numeric)
string as numeric, giving wrong results when used in a boolean context
Using unary - instead is logically equivalent works as expected.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-30 13:33:29 +00:00
Mans Rullgard
f454e87923 configure: rewrite print_config() function using awk
This is much faster with slow shells and noticeably faster even
with bash on a fast Linux system.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-30 10:28:25 +00:00
Martin Storsjö
9b500b8f6c avcodec: Add a RFC 3389 comfort noise codec
This isn't too useful as a normal codec, but can be used in
voip style applications. The decoder updates the noise
generator parameters when a packet is given to it for decoding,
but if called with an empty packet, it generates more noise
according to the last parameters.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-29 22:00:43 +02:00
Mans Rullgard
4cd217c065 configure: detect sparc64 automatically
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 18:24:55 +01:00
Mans Rullgard
1aa07aa21c configure: fix tests for 2-arg math functions
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-26 22:50:42 +01:00
Mans Rullgard
6aa93689ab configure: sanitise sparc vis check
It is wrong to force -mcpu=ultrasparc when checking for vis.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-26 12:29:03 +01:00
Michael Kostylev
eadfb0560a configure: recognise more sparc variants as --cpu argument
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-26 12:29:03 +01:00
Diego Biurrun
2a91ada828 avutil: Make LZO decoder code configure-time selectable 2012-10-25 11:49:49 +02:00
Mans Rullgard
a6e9d64977 configure: detect parisc64 automatically
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-24 16:26:51 +01:00
Mans Rullgard
56203596ae configure: detect ppc64 automatically
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-24 16:26:51 +01:00
Mans Rullgard
2acda282eb configure: detect mips64 automatically
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-24 16:26:51 +01:00
Mans Rullgard
d4c99513f4 configure: generalise 64-bit test
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-24 16:26:51 +01:00
Mans Rullgard
4ebc6a7410 build: Plan 9 support
This adds support for building on Plan 9 x86-32.  The compat/plan9
directory contains these items:

- replacements for the 'head' and 'printf' shell commands
- wrapper for main() to disable FPU exceptions

Larger required changes to the system are described in the
documentation.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:01:18 +01:00
Mans Rullgard
80521c1997 build: allow targets to specify extra objects to link with executables
This allows targets to include special objects when linking
executables without including them in (shared) libraries.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:22 +01:00
Mans Rullgard
fab0a8b2c6 libm: add fallbacks for various single-precision functions
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:21 +01:00
Mans Rullgard
c3e73100af network: use getservbyport() only if available
The absence of this function will only give a less informative
string back from our fallback implementation of getnameinfo().

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-23 12:00:21 +01:00
Diego Biurrun
79042ab376 configure: Group math functions into a separate variable
This avoids some duplication when listing and testing for the functions.
2012-10-20 02:34:29 +02:00
Diego Biurrun
4b587848ce configure: Disable Snow decoder and encoder by default
Snow has serious unfixed bugs and no real-world use.
2012-10-19 17:10:10 +02:00
Mans Rullgard
1cd432e167 configure: fix libcdio check
The compiler/linker flags passed to check_lib2 should not be quoted.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-19 01:02:58 +01:00
Martin Storsjö
d66c52c2b3 Add support for building shared libraries with MSVC
This requires the makedef perl script by Derek, from the
c89-to-c99 repo. That scripts produces a .def file, listing
the symbols to be exported, based on the gcc version scripts
and the built object files.

To properly load non-function symbols from DLL files, the
data symbol declarations need to have the attribute
__declspec(dllimport) when building the calling code. (On mingw,
the linker can fix this up automatically, which is why it has not
been an issue so far. If this attribute is omitted, linking
actually succeeds, but reads from the table will not produce the
desired results at runtime.)

MSVC seems to manage to link DLLs (and run properly) even if
this attribute is present while building the library itself
(which normally isn't recommended) - other object files in the
same library manage to link to the symbol (with a small warning
at link time, like "warning LNK4049: locally defined symbol
_avpriv_mpa_bitrate_tab imported" - it doesn't seem to be possible
to squelch this warning), and the definition of the tables
themselves produce a warning that can be squelched ("warning C4273:
'avpriv_mpa_bitrate_tab' : inconsistent dll linkage, see previous
definition of 'avpriv_mpa_bitrate_tab').

In this setup, mingw isn't able to link object files that refer to
data symbols with __declspec(dllimport) without those symbols
actually being linked via a DLL (linking avcodec.dll ends up with
errors like "undefined reference to `__imp__avpriv_mpa_freq_tab'").
The dllimport declspec isn't needed at all in mingw, so we simply
choose not to declare it for other compilers than MSVC that requires
it. (If ICL support later requires it, the condition can be extended
later to include both of them.)

This also implies that code that is built to link to a certain
library as a DLL can't link to the same library as a static library.
Therefore, we only allow building either static or shared but not
both at the same time. (That is, static libraries as such can be,
and actually are, built - this is used for linking the test tools to
internal symbols in the libraries - but e.g. libavformat built to
link to libavcodec as a DLL cannot link statically to libavcodec.)

Also, linking to DLLs is slightly different from linking to shared
libraries on other platforms. DLLs use a thing called import
libraries, which is basically a stub library allowing the linker
to know which symbols exist in the DLL and what name the DLL will
have at runtime.

In mingw/gcc, the import library is usually named libfoo.dll.a,
which goes next to a static library named libfoo.a. This allows
gcc to pick the dynamic one, if available, from the normal -lfoo
switches, just as it does for libfoo.a vs libfoo.so on Unix. On
MSVC however, you need to literally specify the name of the import
library instead of the static library.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 14:26:15 +03:00
Martin Storsjö
53e8cd68b7 configure: Split out msvc as a separate target OS
The name mingw32 as target OS is both misleading, and very little
of the target OS specific settings actually match.

Since the target OS default is set based on uname, the default
(which on MSYS is set to mingw) is overridden by --toolchain=msvc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-18 14:26:12 +03:00
Mans Rullgard
206a070dce fate: list lavfi tests in a makefile
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:31:18 +01:00
Mans Rullgard
36ac9a16a1 fate: dependencies for seek tests
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:31:18 +01:00
Mans Rullgard
fa26335003 fate: handle lavf test dependencies entirely in make
This makes the lavf tests depend on all codecs and formats they use.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-17 22:31:18 +01:00
Derek Buitenhuis
c75848cd4c configure: Add support for Tilera processors
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-16 18:24:18 -04:00
Mans Rullgard
84e65c763d build: simplify enabling of compat objects
Add a configure function to pull in a compat object and set up
redirects in one operation.  This avoids duplicating conditions
across configure and makefiles.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 17:46:19 +01:00
Mans Rullgard
66a1ccd746 configure: simplify argument handling in check_ld
Use the existing filter functions instead of open-coding the
separation of general flags and libraries.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 17:46:18 +01:00
Mans Rullgard
4c995fafd8 configure: simplify get_version() function
awk alone can do this, no need for grep.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 17:46:18 +01:00
Luca Barbato
0fbb62a8e6 build: support asan and tsan toolchain shortcuts 2012-10-15 18:25:35 +02:00
Mans Rullgard
e98b02de5f configure: check for mprotect
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-15 02:39:49 +01:00
Mans Rullgard
b6f8d635f2 build: tms470: work around glibc math.h problems
The glibc definitions of INFINITY and NAN do not work with the
tms470 compiler, nor do our usual fallbacks.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 18:21:36 +01:00
Mans Rullgard
5ab432fa35 configure: improve tms470 compiler usage with glibc
Apply flags to work around glibc quirks only if glibc is detected,
and add a few more such flags.

Do not mess with as/ld settings in probe_cc.  This is not the
proper place.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 18:21:36 +01:00
Mans Rullgard
b5198a2637 configure: tms470: add mapping for -mfpu=vfpv3-d16 flag
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 18:21:36 +01:00
Mans Rullgard
741a8b724e configure: recognise Minix as OS
No special setup is required for Minix.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 14:05:55 +01:00
Mans Rullgard
ac17ccf73a configure: work around bug in ash shell
The ash 'test' builtin misbehaves if the first operand of a binary
operator looks like a unary operator.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-13 14:05:55 +01:00
Mans Rullgard
a77f01c725 configure: use utilities from /usr/xpg4/bin if it exists
Solaris defaults to non-standard utilities (grep, sed, ...) with
proper ones being in /usr/xpg4/bin.  Prefixing PATH with this
directory when it exists ensures we get correct variants.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-12 23:57:01 +01:00
Diego Biurrun
ca411fc1d3 avcodec: Remove broken MMI optimizations
The code fails to compile and is broken beyond repair.
2012-10-12 20:56:54 +02:00
Mans Rullgard
fdd666094d build: add support for Tru64 (OSF/1)
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-12 02:17:54 +01:00
Martin Storsjö
1093383d6c random_seed: Support using CryptGenRandom on windows
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-10-11 18:49:34 +03:00
Diego Biurrun
a75b9a1804 mingw/cygwin: Stop adding -fno-common to gcc CFLAGS
This was done to work around toolchain bugs that have long been fixed.
2012-10-09 11:39:26 +02:00
Mans Rullgard
643933f51d build: add LTO support for PGI compiler
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-08 22:30:41 +01:00
Mans Rullgard
8f23907f3e build: add -Mdse to PGI optimisation flags
Enable dead store elimination.  The last few releases work no worse
with this flag than without.  Older versions failed to build some
source files when using this flag.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-08 22:30:41 +01:00
Mans Rullgard
c07d56a684 build: error on variable-length arrays
With all the VLAs gone, make sure they never come back.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-05 22:33:32 +01:00
Diego Biurrun
f6fbce761e x86: Drop CPU detection intrinsics
Now that there is CPU detection in YASM, there will always be one of
inline or external assembly enabled, which obviates the need to fall
back on CPU detection through compiler intrinsics.
2012-10-04 19:29:14 +02:00
Mans Rullgard
65d1290043 configure: add --enable-lto option
This works with gcc.  Other compilers might need to have a flag
mapping added.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-04 18:21:49 +01:00
Diego Biurrun
1e164c0bcc build: Factor out mpegaudio dependencies to CONFIG_MPEGAUDIO
A new hidden config variable is added for the codecs that depend on the
mpegaudio parts.
2012-10-04 17:58:42 +02:00
Diego Biurrun
fd712a5584 configure: Refactor HAVE_ options available on the command line 2012-10-03 18:08:25 +02:00
Derek Buitenhuis
bd680c7b49 msvc: Fix detection of VFW & Avisynth required libs
It should be vfw32.lib with MSVC.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-10-01 16:39:40 -04:00
Nathan Caldwell
6cb8c85409 Opus encoder using libopus
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-10-01 14:42:40 +02:00
Nicolas George
44617d6ec9 Opus decoder using libopus
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-09-28 11:03:20 +02:00
Mans Rullgard
0122118ec3 configure: update tms470 detection for latest version
v5.0 of the TI ARM compiler changes the version string.
This updates the detection to check for both the old and
the new strings.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-20 14:56:56 +01:00
Mans Rullgard
ac3a9b51f7 configure: msvc: default to 'lib' as 'ar' tool
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-19 14:09:50 +01:00
Mans Rullgard
3dbc777c7f build: support some non-standard ar variants
This adds support for the TI and Microsoft (lib.exe) variants of
the ar utility.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-19 14:09:50 +01:00
Mans Rullgard
aeeb782c2a configure: add --toolchain option
This allows creating canned shorthands for common combinations
of cc, ld etc.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-18 23:43:05 +01:00
Martin Storsjö
e772f9faec configure: Make the smoothstreaming muxer enable the ismv muxer
This doesn't fix any build failure, but the smoothstreaming muxer
opens a chained ismv muxer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-18 17:59:59 +03:00
Mans Rullgard
2a8a860ae6 configure: include flags in nm variable
This simplifies ensuring proper flags are used when the default
is overridden by the system or on the command line.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-17 22:36:06 +01:00
Mans Rullgard
692dd8ed26 configure: x86: improve ebp availability check
Some compilers are extra strict about register usage in main(),
disallowing ebp in inline asm there while allowing it elsewhere.
This change makes the test better reflect actual usage.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-14 15:26:05 +01:00
Martin Storsjö
ca6b544ac9 os_support: Choose between direct.h and io.h using a configure check
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-13 14:56:54 +03:00
Martin Storsjö
6121a3ef7f configure: Only disable aligned stack on MSVC on 32 bit
On 64 bit, the stack seems to be aligned enough for our needs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-11 16:18:03 +03:00
Diego Biurrun
f69f51b3b2 configure: indentation cosmetics 2012-09-11 14:34:26 +02:00
Martin Storsjö
5fa22ae346 configure: Adjust the xgetbv instrinsic check
The 64 bit cl.exe version 16.00.30319.01 crashes with an internal
compiler error on the current check (and thus deduces it isn't
supported, even if the actual usage in libavuil/x86/cpu.c works
fine), but by assigning the value from the intrinsic to a variable,
or returning it, it works fine.

This error is fixed in cl.exe version 16.00.40219.01.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-10 19:46:06 +03:00
Diego Biurrun
afb5ed55d2 configure: Add --disable-inline-asm command line option
This can come in handy for testing and possibly other purposes.
2012-09-10 18:31:51 +02:00
Martin Storsjö
88a3569917 configure: Don't try to enable the log2 function on msvcrt
Some msvcrt versions (the static 64 bit libc in MSVC 10) have
a log2 function, but there is no declaration for it in the headers.
Therefore, the normal configure check might find it, but it can fail
during build or at runtime, depending on whether implicit function
declarations are an error or not.

Therefore simply ignore this function on this platform.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-10 17:23:32 +03:00
Mans Rullgard
6a0200f24d configure: msvc: fix/simplify setting of flags for hostcc
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-08 15:09:13 +01:00
Martin Storsjö
a224b2cb30 configure: Set the right cc_e flags for msvc
The default ones work, but outputs the preprocessed file on stdout
(into config.log).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-06 17:05:10 +03:00
Martin Storsjö
4a185ed2d4 configure: Disable some warnings in MSVC
This disables the following warnings:
C4100: unreferenced formal parameter
 (1035 occurrances)
C4214: nonstandard extension used : bit field types other than int
 (609 occurances)
C4996: 'avpriv_snprintf': This function or variable may be unsafe.
       Consider using _snprintf_s instead. To disable deprecation,
       use _CRT_SECURE_NO_WARNINGS. See online help for details.
 (351 occurrances)

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 23:20:24 +03:00
Ronald S. Bultje
dfa559bcbd configure: Add support for MSVC cl.exe/link.exe
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 17:07:40 +03:00
Ronald S. Bultje
4fa661a857 lavu: add snprintf(), vsnprint() and strtod() replacements for MS runtime.
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 17:07:30 +03:00
Mans Rullgard
b797f3c4d0 configure: add section for libc-specific hacks
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 17:07:17 +03:00
Mans Rullgard
a3222470de build: disable ranlib on mingw
Using ranlib is not required but prevents using the libraries with
msvc.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-05 17:07:11 +03:00
Diego Biurrun
6980453569 build: eamad: Add missing dependency on mpegvideo code 2012-09-05 11:50:30 +02:00
Diego Biurrun
aa66111365 build: utvideoenc: Add missing dependency on Huffman code 2012-09-05 11:50:30 +02:00
Diego Elio Pettenò
b36f87ff90 configure: add support for bdver1 and bdver2 CPU types.
Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-04 15:31:03 +02:00
Alberto Delmás
ee769c6a7c MSS2 decoder
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2012-08-31 07:37:16 +02:00
Mans Rullgard
d96d6ba618 configure: handle --disable-asm before check_deps
This is necessary to avoid spuriously enabling _external or _inline
variants of arch extensions when they should be disabled.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-31 01:59:23 +01:00
Diego Biurrun
43b73d59a8 configure: x86: Separate inline from standalone assembler capabilities 2012-08-31 01:53:25 +02:00
Diego Biurrun
50cd43f2cd configure: Add more fine-grained SSE CPU capabilities flags 2012-08-30 19:29:32 +02:00
Mans Rullgard
8db73c61a7 build: allow non-standard variations of linker -l/-L flags
This enables replacing the -l and -L flags used to specify the
just-built libraries when linking the tools and shared libs with
non-standard syntaxes.  System library flags are already handled
by the filtering mechanism in configure.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-29 14:16:54 +01:00
Mans Rullgard
7baa115a33 build: export filtered -lz flag in config.mak
This is needed to link tools/cws2fws using a linker with non-standard
command line syntax.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-28 23:40:30 +01:00
Mans Rullgard
095792f253 build: add separate setting for host linker
This adds new HOSTLD and related settings for host linker allowing
it to be different from HOSTCC.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-28 23:40:30 +01:00
Mans Rullgard
2763587c83 configure: probe_cc: use separate variable for linker output flag
Some tools use different command line syntax for specifying output
when compiling and linking.  To accomodate these, separate variables
must be used.  No currently supported compilers/linkers are affected
by the change.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-28 23:40:30 +01:00
Brad Smith
d488c3bcba configure: support Bitrig OS
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-29 00:14:52 +02:00
Michael Niedermayer
5a582bd3b5 huffman: add ff_huff_gen_len_table
The function will be used by utvideo as well.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-08-28 17:43:25 +02:00
Mans Rullgard
ae43c4c0c0 configure: use HOSTCC_C/O in check_host_cc
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-27 23:14:06 +01:00
Mans Rullgard
df0d634138 configure: use AS_O setting in check_as
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-27 23:14:06 +01:00
Mans Rullgard
29b64b6827 configure: use LD_O setting in check_ld()
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-27 23:14:06 +01:00
Brad Smith
d5683aba5a configure: Fix shared library creation for OpenBSD
OpenBSD does not expect or require symlinked shared libraries with
just the major version in the name.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-27 20:37:47 +02:00
Diego Biurrun
66baa45801 configure: Drop fastdiv option
There is no point in having the user disable any fastdiv macros.
Besides the condition implementation was broken and only disabled
the C implementation, but no platform specific assembly versions.
2012-08-22 01:02:18 +02:00
Diego Biurrun
4264a0dd54 build: Make the E-AC-3 encoder select the AC-3 encoder
The E-AC-3 encoder depends on almost all of the code of the AC-3
encoder, so it makes no sense to enable one without the other.
2012-08-22 01:02:17 +02:00
Mans Rullgard
20bcce507a configure: clean up Altivec detection
There used to be one test for Altivec intrinsics support and a
separate test to determine which of two possible syntaxes to use
for vector literals.  Since 2008, we only support the more common
of these so the split test no longer makes sense.

This combines the tests into one and also changes the hard error on
failure to a warning.  The test can reasonably fail if no --cpu flag
is provided (or is provided with an unknown CPU) and the compiler
default target does not support Altivec.  Aborting in this case is
probably over-reacting.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-16 23:15:38 +01:00
Diego Biurrun
f704a079a1 build: Factor out rangecoder dependencies to CONFIG_RANGECODER
A new hidden config variable is added for the codecs that depend on
the rangecoder parts.
2012-08-16 11:05:39 +02:00
Diego Biurrun
c292f6a24d build: Factor out error resilience dependencies to CONFIG_ERROR_RESILIENCE
A new hidden config variable is added for the codecs that depend on
the error resilience parts.
2012-08-16 11:05:38 +02:00
Diego Biurrun
ad08dfd594 build: Factor out mpegvideo encoding dependencies to CONFIG_MPEGVIDEOENC
A new hidden config variable is added for the codecs that depend on
the mpegvideo encoding parts.
2012-08-14 10:04:34 +02:00
Diego Biurrun
fe5fba44c5 configure: Fix typo in mpeg2video/svq1 decoder dependency declaration 2012-08-13 19:37:56 +02:00
Diego Biurrun
575db88377 configure: Rename check_asm() to more fitting check_inline_asm() 2012-08-11 20:26:31 +02:00
Michael Niedermayer
83c93fe74a configure: Check for a sctp struct instead of just the header
This fixes build failures on debian/kfreebsd, which has the
sctp.h header, but it is currently broken (a cpp test succeeds,
but a compile test fails), see http://bugs.debian.org/684330 for
details.

Also remove the checked item from HAVE_LIST, since the corresponding
HAVE_* define isn't used by the source code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-09 22:22:38 +03:00
Diego Biurrun
c72f12cbae configure: suncc: Add -xc99 to dependency flags, required on Solaris 2012-08-09 20:07:05 +02:00
Mans Rullgard
18bbca1fd3 build: factor out mpegvideo.o dependencies to CONFIG_MPEGVIDEO
This adds a hidden config variable for the mpegvideo.o dependency
and selects from the codecs which require it.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 01:31:37 +01:00
Mans Rullgard
154caa677c configure: add --enable/disable-random option
This allows creating random configurations which is useful for
testing purposes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 22:30:49 +01:00
Mans Rullgard
ec9d2c15c1 ARM: use Q/R inline asm operand modifiers only if supported
Some compilers do not support the Q/R modifiers used to access
the low/high parts of a 64-bit register pair.  Check for this
and disable all uses of it when not supported.

Fixes bug #337.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 21:13:30 +01:00
Derek Buitenhuis
4ab26cb4cc configure: Add support for e500mc CPU
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-07 12:49:01 -04:00
Mans Rullgard
180d43bc67 x86: use nop cpu directives only if supported
nasm does not support 'CPU foonop' directives.  This adds a configure
test for the directive and uses it only if supported.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 15:22:20 +01:00
Yaakov Selkowitz
f5d2c597e9 build: fix library installation on cygwin
This installs libraries using the proper names and locations,
generates an import lib for the DLL, and drops no longer needed
linker flags.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 12:39:04 +01:00
Mans Rullgard
baac24e680 build: generalise rules and variable settings for av* programs
This simplifies adding extra flags for individual programs
and also allows more than one object file per program.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-06 17:43:29 +01:00
Diego Biurrun
239fdf1b4a x86: build: replace mmx2 by mmxext
Refactoring mmx2/mmxext YASM code with cpuflags will force renames.
So switching to a consistent naming scheme beforehand is sensible.
The name "mmxext" is more official and widespread and also the name
of the CPU flag, as reported e.g. by the Linux kernel.
2012-08-03 22:51:05 +02:00
Diego Biurrun
193cdd9a3e configure: Add missing descriptions to help output 2012-07-30 00:42:20 +02:00
Diego Biurrun
bfe9f48ad7 configure: Move parts that should not be user-selectable to CONFIG_EXTRA 2012-07-28 11:26:06 +02:00
Mans Rullgard
23565c2641 build: support non-standard replacements for -c flag
This allows non-standard replacements for the -c compiler flag.
Some compilers use other flags or no flag at all in place of
the usual one.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-28 01:50:12 +01:00
Mans Rullgard
18031c49dc build: support non-standard replacements for -E flag
This allows using non-standard flags for running the C preprocessor.
The -o flag must be included in this setting due to strange syntax
required by some compilers.

Set the correct flags for tms470.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-28 01:50:12 +01:00
Diego Biurrun
24f8961f93 x11grab: cosmetics: consistent naming for x11grab-related things 2012-07-28 02:02:19 +02:00
Diego Biurrun
755834e94f build: Rename YASMDEP variable to DEPYASM for consistency 2012-07-28 02:02:19 +02:00
Justin Ruggles
79687079a9 x86: add support for fmaddps fma4 instruction with abstraction to avx/sse 2012-07-27 11:25:48 -04:00
Mans Rullgard
a758c5e259 build: do full flag handling for all compiler-type tools
This adds a full identification probe of CC, AS, LD and HOSTCC,
and sets up correct flags and dependency tracking for each.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-26 23:58:50 +01:00
Diego Biurrun
8784959234 build: Rename aandct component to more descriptive aandcttables 2012-07-26 23:35:21 +02:00
Martin Storsjö
6c1ed45483 configure: Add a dependency on https for rtmpts
The rtmpts protocol uses https implicitly, via the ffrtmphttp
protocol, but the ffrtmphttp protocol is also useable for plain
rtmpt without https, so the dependency needs to be added here instead.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-24 00:43:27 +03:00
Samuel Pitoiset
08cd95e8a3 RTMPTE protocol support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-23 16:32:09 +03:00
Samuel Pitoiset
acd554c103 RTMPE protocol support
This adds two protocols, but one of them is an internal implementation
detail just used as an abstraction layer/generalization in the code. The
RTMPE protocol implementation uses ffrtmpcrypt:// as an alternative to the
tcp:// protocol. This allows moving most of the lower level logic out
from the higher level generic rtmp code.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-23 16:32:07 +03:00
Mans Rullgard
b2704a65d5 configure: respect CC_O setting in check_cc
Use compiler-specific replacements for the -o flag in check_cc.
This makes tests work properly with compilers using non-standard
flags.

The tms470 flags are updated to work with this scheme.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-22 21:14:01 +01:00
Diego Biurrun
388ff813e7 configure: cosmetics: Group test dependencies together 2012-07-21 22:49:31 +02:00
Mans Rullgard
ad93dccb64 configure: add more passthrough flags in tms470 filter
This is in preparation for following changes.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 21:33:04 +01:00
Mans Rullgard
d0c6d424f4 configure: move flag filtering functions out of if/else blocks
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 21:33:01 +01:00
Samuel Pitoiset
bdbb21b186 configure: Remove redundant RTMPT/RTMPTS dependencies
The incompatibility with librtmp is already expressed in the ffrtmphttp
protocol dependency declaration, which both RTMPT and RTMPTS depend on.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-07-21 18:29:05 +02:00
Mans Rullgard
6c3fa06a85 configure: add filtering of host cflags/ldflags
This is in preparation for supporting host compilers with
non-standard flags.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 17:18:55 +01:00
Mans Rullgard
68485d1f32 configure: initialise all flag filters at the same place
This is more consistent, and doing it earlier is harmless.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:54:49 +01:00
Mans Rullgard
64933b6c94 configure: add filtering of linker flags
This allows filtering of linker flags the same was as already
supported for CFLAGS.  The filter must be initialised to 'echo'
early since it is invoked by --extra-ldflags.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:54:16 +01:00
Mans Rullgard
01d31e16f1 configure: name some variables more consistently
Name variables pertaining to various types of flags with 'cflags' etc
as prefix instead of suffix.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:49:45 +01:00
Mans Rullgard
cd52ec95bb configure: remove filter_cppflags
This is not used and the current design would not work properly
if mixing tools needing different filters.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:49:30 +01:00
Mans Rullgard
07e3f9af9f configure: set icc_version where it is needed
This variable is only used once, so setting it there is clearer.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-21 16:48:42 +01:00
Mans Rullgard
45870f8b6e Print full compiler identification, not only version number
This provides a more precise identification of the compiler used.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-19 10:21:46 +01:00
Mans Rullgard
ab9f987661 build: add CONFIG_VP3DSP, reduce repetition in OBJS lists
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-18 10:32:18 +01:00
Diego Biurrun
c547e5ff98 configure: clarify external library section of help output 2012-07-18 02:11:04 +02:00
Diego Biurrun
87246953d8 configure: mark libfdk-aac as nonfree 2012-07-18 02:00:22 +02:00
Diego Biurrun
47876d661a configure: cosmetics: drop some unnecessary backslashes 2012-07-18 02:00:21 +02:00
Michael Bradshaw
453c02f971 libopenjpeg: introduce encoding support
Based on FFmpeg version from
commit 713a7854e0

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-17 14:56:58 +02:00
Samuel Pitoiset
86991ce2dd RTMPTS protocol support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-17 14:02:55 +03:00
Samuel Pitoiset
6aedabc9b6 RTMPS protocol support
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-17 13:53:33 +03:00
Samuel Pitoiset
775c4d3625 rtmp: Rename rtmphttp to ffrtmphttp
The prefix makes it easier to distinguish the proper end-user
protocols from the internal ones.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-17 01:19:01 +03:00
Martin Storsjö
f06dee7794 configure: Move the getaddrinfo function check into the network block
This makes the two checks (general vs winsock) fit in better.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-16 11:14:19 +03:00
Martin Storsjö
03d1b18e96 configure: Remove an unused 'have' item
This is only used for checking for a certain library, but the code
doesn't need to know whether the function was found.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-16 01:58:35 +03:00
Ronald S. Bultje
b4675d0fbf configure: Check for CommandLineToArgvW
The actual result of the check isn't used anywhere (since we
use this function unconditionally within #ifdef _WIN32), but it
makes sure we explicitly link to shell32 (which is linked in
implictly on mingw).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 14:03:53 +03:00
Ronald S. Bultje
39d18f21a5 configure: Check for getaddrinfo in ws2tcpip.h, too
This function is only available in the headers if unconditionally
targeting a version >= XP. It is not strictly necessary, since we
try loading these functions dynamically at runtime on windows in
the fallback, but this makes things a bit faster and more
straightforward.

On mingw32, this function isn't visible by default, while it is
on mingw64 (on both 32 and 64 bit).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-15 02:19:34 +03:00
Diego Biurrun
7d605d5115 configure: Drop redundant mxf_d10 test dependency declaration
The mxf_d10 test depends on avconv, which depends on avfilter, so there
is no need to declare an avfilter dependency for the mxf_d10 test.
2012-07-12 10:45:20 +02:00
Martin Storsjö
37eeb5e273 Support AAC encoding via the external library fdk-aac
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-12 11:01:10 +03:00
Ronald S. Bultje
667fb97a65 dct/fft-test: use a replacement getopt() if the system has none present.
This allows compiling and running these tests on systems lacking a built-
in version of getopt(), such as MSVC.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-07-11 21:24:37 +02:00
Ronald S. Bultje
183b1c2268 configure: Check for the math function rint
Add a fallback implementation if it doesn't exist.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-11 10:40:11 +03:00
Ronald S. Bultje
358d854df8 x86/cpu: implement get/set_eflags using intrinsics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 14:33:32 +03:00
Ronald S. Bultje
c0ee695bd7 x86/cpu: implement support for cpuid through intrinsics
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 14:33:24 +03:00
Ronald S. Bultje
3f150ffba3 x86/cpu: implement support for xgetbv through intrinsics
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 14:33:17 +03:00
Ronald S. Bultje
f80ddd5bf7 lavu: use intrinsics for emms on systems lacking inline asm support
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-07-10 14:33:09 +03:00
Diego Biurrun
8e85ba8d13 configure: Change the rdtsc check to a linker check
A compile-only test could succeed with an implicit function declaration.
Also move the check to the x86 section; rdtsc is x86-only.
2012-07-09 12:50:06 +02:00
Ronald S. Bultje
07b287020c x86/timer: implement an intrinsic-based version for rdtsc (AV_READ_TIME). 2012-07-07 13:35:07 -07:00
Mans Rullgard
5adc829eb0 configure: add functions for testing code fragments
This simplifies testing arbitrary code fragments within a function
body.

Signed-off-by: Mans Rullgard <mans@mansr.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-06 19:22:08 +02:00
Diego Biurrun
112971af26 configure: simplify get_version()
All libs have version headers now, which allows hardcoding the path.
2012-07-04 15:10:08 +02:00
Diego Biurrun
86ab7b0f2f Create version.h headers for libraries that lack them 2012-07-04 15:10:06 +02:00
Mans Rullgard
06eb4f0885 configure: do not disable av_always_inline with --enable-small
Currently, --enable-small turns av_always_inline into plain inline,
which is more or less ignored by the compiler.  While the intent of
this is probably to reduce code size by avoiding some inlining, it
has more far-reaching effects.

We use av_always_inline in two situations:

1. The body of a function is smaller than the call overhead.
   Instances of these are abundant in libavutil, the bswap.h
   functions being good examples.

2. The function is a template relying on constant propagation
   through inlined calls for sane code generation.  These are
   often found in motion compensation code.

Both of these types of functions should be inlined even if targeting
small code size.

Although GCC has heuristics for detecting the first of these types,
it is not always reliable, especially when the function uses inline
assembler, which is often the reason for having those functions in
the first place, so making it explicit is generally a good idea.

The size increase from inlining template-type functions is usually
much smaller than it seems due to different branches being mutually
exclusive between the different invocations.  The dead branches can,
however, only be removed after inlining and constant propagation have
been performed, which means the initial cost estimate for inlining
these is much higher than is actually the case, resulting in GCC
often making bad choices if left to its own devices.

Furthermore, the GCC inliner limits how much it allows a function to
grow due to automatic inlining of calls, and this appears to not take
call overhead into account.  When nested inlining is used, the limit
may be hit before the innermost level is reached.  In some cases, this
has prevented inlining of type 1 functions as defined above, resulting
in significant performance loss.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-03 16:10:54 +01:00