Commit Graph

2463 Commits

Author SHA1 Message Date
Janne Grunau afe1762654 build: export library dependencies in ${name}_FFLIBS
Removes an ugly $(if) to avoid conflicts with $(FFLIBS-) in the
top-level MAkefile.
2014-05-20 00:43:51 +02:00
Katerina Barone-Adesi 4d25c2bc76 build: Support building using clang-usan and disable-optimization
Clang Undefined Behaviour Sanitizer seems to make non-constant constant
expressions, making the compilation fail when they are used within
inline assembly if no optimization is requested.

Add -O1 to the cflags to hide the misbehaviour.

Bug-Id: 683
2014-05-16 19:58:34 +02:00
Tristan Matthews 7c5ca546a0 configure: fix enable-libopus help string 2014-05-15 18:17:01 +02:00
Anton Khirnov b70d7a4ac7 lavc: add a native Opus decoder.
Initial implementation by Andrew D'Addesio <modchipv12@gmail.com> during
GSoC 2012.

Completion by Anton Khirnov <anton@khirnov.net>, sponsored by the
Mozilla Corporation.

Further contributions by:
Christophe Gisquet <christophe.gisquet@gmail.com>
Janne Grunau <janne-libav@jannau.net>
Luca Barbato <lu_zero@gentoo.org>
2014-05-15 06:49:34 +02:00
Janne Grunau 449511740f build: handle library dependencies in configure
Instead of setting FFLIBS in each library Makefile configure
exports FFLIBS-$library in config.mak.
2014-05-13 20:02:01 +02:00
Anton Khirnov 67afcefb35 lavc: Add new VDA hwaccel
It leverages the new hwaccel 1.2 features:

- get_buffer2 is never called
- the internal context is automatically initialized/deinitialized

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-11 15:00:03 +02:00
Alessandro Ghedini 1c0210c798 lavfi: add Bauer stereo-to-binaural audio filter
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-01 08:00:30 +02:00
Anton Khirnov a61c2115fb configure: rework dxva in avconv handling
Move the dxva check after the dependencies have been detected, make sure
the ole32 library exists.

Fixes build on non-Windows.
2014-04-28 23:02:56 +02:00
Hendrik Leppkes 35177ba77f avconv: add support for DXVA2 decoding
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-28 21:21:54 +02:00
Kostya Shishkov e2834567d7 On2 AVC decoder 2014-04-23 19:57:44 +02:00
Kostya Shishkov 93e15a3238 fic: use correct IDCT
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 12:37:54 -04:00
Martin Storsjö 4936ef6492 configure: Handle armcc 5.0
The first line of the "armcc --vsn" output in one version is
"Product: ARM Compiler 5.04".

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-04-19 12:49:20 +03:00
Luca Barbato f1b239ec8b drawtext: Add fontconfig support
Introduce the `font` option and make it optional to pass a fontfile.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-17 00:41:30 +02:00
Paul B Mahol 718907cd88 libtwolame MP2 encoding support
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-07 23:50:33 +02:00
Janne Grunau 8675bcb0ad aarch64: add armv8 CPU flag 2014-04-06 21:18:49 +02:00
Peter Ross ac4b32df71 On2 VP7 decoder
Further performance improvements and security fixes by
Vittorio Giovara, Luca Barbato and Diego Biurrun.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-04-04 04:00:11 +02:00
Jimmy Christensen 38389058c3 OpenEXR decoder
Additional fixes and enhancements by Vittorio Giovara, Gonzalo Garramuno,
Nicolas George, Paul B Mahol and Michael Niedermayer.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-01 01:13:09 +02:00
Derek Buitenhuis cd60631752 libx265: Bump version requirement
Build 13 has a crucial fix which makes x265_encode_headers work
as its always been documented.

Previous to this, the check was incorrect.

Also allows for use of the repeat headers flag.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-31 16:24:05 +01:00
Diego Biurrun 8ef33497a6 build: Add config option for CABAC code
This allows for more elegant dependency and object declarations.
2014-03-24 15:35:18 +01:00
Peter Krefting 54f7881615 configure: Remove dcbzl check for e500v1 and e500v2 architectures
The DCBZL instruction is not available for the e500v1 and e500v2
architectures, but may still be recognized by the toolchain, so we
need to explicitly disable it for these architectures.

References: PowerPC™ e500 Core Family Reference Manual (Freescale)

Found-by: Ståle Kristoffersen <staalebk@ifi.uio.no>

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-24 02:22:16 +01:00
Luca Barbato fb7127b2c8 build: h264 parser depends on full h264 decoder 2014-03-23 22:41:11 +01:00
Luca Barbato 0f0d1d056e configure: Always use -DOPJ_STATIC when checking for openjpeg
Unbreaks windows systems not providing pkgconf files.

Reported-By: Rafaël Carré <funman@videolan.org>
2014-03-23 01:14:31 +01:00
Diego Biurrun 57f09608e1 dsputil: Move thirdpel-related bits into their own context 2014-03-22 06:17:30 -07:00
Diego Biurrun 606cc8afa1 configure: ppc: Disable ldbrx instruction by default
Only enable it for CPUs that support it.
This restores the behavior prior to 7a650caf.
2014-03-19 17:14:11 +01:00
Vittorio Giovara be039278b5 mpegvideo: move ff_draw_horiz_band() to mpegutils.c
Drop the mpegvideo dependency for svq3 in configure.
2014-03-16 23:05:39 +01:00
Diego Biurrun 7a650caf64 configure: Split some logical blocks off from HAVE_LIST 2014-03-14 13:45:40 +01:00
Diego Biurrun d0adf55c05 configure: Split some logical blocks off from CONFIG_LIST 2014-03-14 13:45:40 +01:00
Diego Biurrun 07ea8a7e94 configure: Group and sort function/struct/type checks
Group checks into logical groups and sort alphabetically within those groups
unless checks have close coupling. Keep closely coupled checks together.
2014-03-14 13:45:40 +01:00
Diego Biurrun b4dd424d96 Remove all SPARC architecture optimizations
SPARC is no longer being used in any multimedia-related fields and the
VIS optimizations only represent a maintenance burden.
2014-03-13 05:50:28 -07:00
Diego Biurrun bbb64356cc build: Record dependency of eatqi decoder on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun b5f112d820 configure: Add explicit dsputil dependency to mpegvideoenc
Previously, it was an implicit dependency through mpegvideo. Change
this, as implicit dependencies can cause all sorts of trouble.
2014-03-13 05:50:27 -07:00
Diego Biurrun cd832f032f ffv1: Drop bogus dependency on dsputil
ffv1 does not use any part of the dsputil framework.
2014-03-13 05:50:27 -07:00
Diego Biurrun 0e29c5e128 build: Drop stray LPC dependency on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun 6cd76e5412 build: Drop stray MJPEG encoder dependency on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun 9ecf1b62f3 build: Drop stray MLP decoder dependency on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun 7d7be44f3e build: Drop stray PNG decoder dependency on dsputil 2014-03-13 05:50:27 -07:00
Diego Biurrun 88b240646f build: Drop stray mpc8 decoder dependency on dsputil 2014-03-13 05:50:27 -07:00
Luca Barbato aa80742539 configure: Support older version of openjpeg1
It should work best for debian stable and people not installing the .pc
file.
2014-03-12 14:06:21 +01:00
Diego Biurrun b3c6ee199e configure: Group toolchain options together in help output 2014-03-12 14:00:19 +01:00
Luca Barbato 390acbea06 configure: Provide --pkg-config-flags
Should be used only to pass extra flags to pkgconf invocation,
e.g. --static.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-11 21:55:11 +01:00
Luca Barbato 5926603ad6 configure: Document --pkg-config option 2014-03-11 19:52:40 +01:00
Diego Biurrun 7caf48e036 configure: miscellaneous cosmetics
Sort lists of components. Add some whitespace where it helps readability.
Consistently use double instead of single quotes around component lists.
2014-03-10 23:52:52 +01:00
Luca Barbato 4a8562394b configure: Use the right pkgconf file for openjpeg
The current release of version 1 uses libopenjpeg1.
2014-03-10 11:48:04 +01:00
Anton Khirnov e854b8f9f4 Work around broken floating point limits on some systems.
The values of {FLT,DBL}_{MAX,MIN} macros on some systems (older musl
libc, some BSD flavours) are not exactly representable, i.e.
(double)DBL_MAX == DBL_MAX is false
This violates (at least some interpretations of) the C99 standard and
breaks code (e.g. in vf_fps) like
double f = DBL_MAX;
[...]
if (f == DBL_MAX) { // f has not been changed yet
    [....]
}
2014-03-10 10:27:17 +01:00
Janne Grunau c708b54033 timer: use mach_absolute_time as high resolution clock on darwin
Not guaranteed to be in nanosecond resolution. On iOS 7 the duration
of one tick is 125/3 ns which is still more than an order of magnitude
better then microseconds.

Replace decicycles with the neutral UNITS. Decicycles is strange but
tenths of a nanosecond and unspecific "deci"-ticks for mach_absolute_time
is just silly.
2014-03-09 00:45:34 +01:00
Pierre Lejeune 0e0cefb222 build: Use pkg-config for openjpeg
Bug-Id: 387
CC: libav-stable@libav.org
2014-03-08 19:42:32 +01:00
Derek Buitenhuis d67dbfa7c1 libx265: Support API version 9
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-06 20:21:27 +00:00
Diego Biurrun d48430c367 build: Let the SVQ3 decoder depend on the H.264 decoder
The SVQ3 decoder reuses large parts of the H.264 decoder so it
makes no sense to enable the former but not the latter.

Also drop unnecessary h263.o object from SVQ3 decoder object list.
2014-03-06 18:23:41 +01:00
Diego Biurrun 84bf881720 configure: Split x86 SIMD architecture extensions into separate list
This avoids checking inline/external assembly dependencies for x86
extensions that do not play a role in inline/external assembly.
2014-03-06 13:29:00 +01:00
Reinhard Tartler 5ddc9f5052 configure: enable PIC on s390(x)
The s390 architecture requires shared libraries to be built in PIC mode.
Otherwise applications will get wrong relocations at run-time, leading
to confusing segmentation faults.

CC: libav-stable@libav.org
2014-03-04 21:40:36 -05:00
Vittorio Giovara 61b323ce7c vf_frei0r: refactor library loading from env variable
strtok_r is not needed any more, so remove it from configure.
2014-03-04 11:39:02 +01:00
Anton Khirnov bc6461c286 af_compand: replace strtok_r() with av_get_token() 2014-02-28 21:55:46 +01:00
Diego Biurrun fb3b2f5d92 configure: Set the thread type after resolving dependencies
A threading type might be detected originally, but later disabled
if one of its dependencies is unavailable.

This makes sure that the threading support item in the configure
output is right for setups where w32threads are available but
native atomics aren't.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-28 22:27:05 +02:00
Diego Biurrun 2f02bbcca0 build: Let the ffvhuff decoder/encoder depend on the huffyuv decoder/encoder
Almost all of the code is shared so there is little point in
enabling one decoder/encoder without the other.
2014-02-28 21:17:01 +01:00
Diego Biurrun 34150be515 build: Let the iac decoder depend on the imc decoder
Almost all of the code is shared so there is little point in
enabling one decoder without the other.
2014-02-28 21:11:53 +01:00
Diego Biurrun 8e0cf39faf build: Let all MJPEG-related decoders depend on the MJPEG decoder
These codecs compile all of the MJPEG code anyway, so there is little
point in not enabling the MJPEG decoder directly. This also simplifies
the dependency declarations for the MJPEG codec family.
2014-02-28 20:51:10 +01:00
Diego Biurrun 0a36988e48 build: Let AMV decoder depend on the SP5X decoder
This codec compiles all of the SP5X code anyway, so there is little
point in not enabling the decoder directly. This also simplifies the
dependency declaration for the AMV decoder.
2014-02-28 20:44:53 +01:00
Christophe Gisquet 4cb6964244 dcadec: simplify decoding of VQ high frequencies
The vector dequantization has a test in a loop preventing effective SIMD
implementation. By moving it out of the loop, this loop can be DSPized.

Therefore, modify the current DSP implementation. In particular, the
DSP implementation no longer has to handle null loop sizes.

The decode_hf implementations have following timings:

For x86 Arrandale:
        C  SSE SSE2 SSE4
win32: 260 162  119  104
win64: 242 N/A   89   72

The arm NEON optimizations follow in a later patch as external asm. The
now unused check for the y modifier in arm inline asm is removed from
configure.
2014-02-28 13:03:22 +01:00
Anton Khirnov 291e49d4e7 af_compand: add a dependency on strtok_r 2014-02-26 21:59:14 +01:00
Anton Khirnov e7dfaf16a4 libavfilter: example audio filtering program
Based on a patch by Andrew Kelley <superjoe30@gmail.com>

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-02-25 13:22:10 +01:00
Derek Buitenhuis d00a504b24 libx265: Update API usage
Framerate is now a sane rational instead of an integer, and
inputDepth is changed to what it actually is.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 15:50:04 +00:00
James Almer 1b932eb150 x86: add detection for FMA3 instruction set
Based on x264 code

Signed-off-by: James Almer <jamrial@gmail.com>
2014-02-23 15:29:36 +01:00
James Almer 10b0161d78 x86: add missing XOP checks and macros
Signed-off-by: James Almer <jamrial@gmail.com>
2014-02-23 15:29:36 +01:00
Janne Grunau 5800ba0db6 configure: disable cpunop if the check fails
Moving cpunop from the HAVE_LIST to the ARCH_EXT_LIST_X86 has the side
effect of enabling it. The semantics of the check have to be changed
from enable if successful to disable if unsuccessful. This was missing
in 2b0bb69997 causing build errors with
nasm.
2014-02-23 15:29:20 +01:00
Luca Barbato d6a27f885b configure: Add usan to the toolchain presets
clang-3.4 and gcc-4.9 have it.
2014-02-20 18:58:38 +01:00
Diego Biurrun 2b0bb69997 configure: Move cpunop into ARCH_EXT_LIST_X86
It is a processor feature, so it belongs there.
2014-02-20 18:20:08 +01:00
Diego Biurrun 6adf4290eb configure: Move inet_aton check into network function check block 2014-02-20 18:20:07 +01:00
Diego Biurrun 192ccc5034 build: The MPEG-4 video parser depends on h263dsp
The dependency is indirect through the h263/mpegvideo code.
CC: libav-stable@libav.org
2014-02-20 11:55:12 +01:00
Diego Biurrun 874c751cc5 threads: Check w32threads dependencies at the configure stage
Also add warning comment about threading implementations without matching
atomics implementation to the atomics fallback implementation.
2014-02-19 15:12:37 +01:00
Diego Biurrun b339182eba Move all example programs to doc/examples
Also drop support for building examples in library directories.
2014-02-16 21:37:21 +01:00
Janne Grunau d261719319 configure: do not link libraries against program-specific dependencies
Bug-Id: 635
2014-02-13 13:01:49 +01:00
Janne Grunau 60e6cecf9b configure: avserver does not need $ldl
Loadable plugins were removed in d010e95f86.
2014-02-13 00:29:14 +01:00
Derek Buitenhuis 50ea93158d Add libx265 encoder
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-12 13:13:17 +00:00
Kostya Shishkov cde7df25ef Mirillis FIC video decoder
Does not contain cursor rendering yet.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-08 15:04:13 +00:00
Janne Grunau 6398d8fd81 configure: clang: add -Qunused-arguments to as|ld_flags as well 2014-02-08 13:38:36 +01:00
Janne Grunau 9e057f53aa configure: clang: explicitly state dep file and rule name in DEPFLAGS
Fixes dependency file generation with gas-preprocessor.pl and clang.
Flags copied from GCC and tested with Apple's clang from Xcode 5 and
5.1 and clang 3.2, 3.3, 3.4 on Linux.
2014-01-25 21:50:21 +01:00
Janne Grunau fb87e69ff7 configure: add missing x86 dependency for i686 2014-01-25 21:50:20 +01:00
Diego Biurrun 8267f93635 configure: Set default HOSTCFLAGS/HOSTCPPFLAGS after compiler detection
This prevents the default HOSTCFLAGS from getting clobbered by flags
passed to configure on the command line.
2014-01-22 10:33:04 +01:00
Diego Biurrun dc4d726bab build: Add separate hidden config option for the intrax8 code
This allows for slightly cleaner dependency specification.
2014-01-15 15:23:46 +01:00
Janne Grunau b7b17ed66e aarch64: add cpuflags support for NEON and VFP
NEON and VFP are currently mandatory for all ARMv8 profiles. Both are
handled as extensions as far as cpuflags are concerned. This is
consistent with handling x86_64 which always has SSE2, but still
handles it as an extension.
2014-01-15 12:05:09 +01:00
Janne Grunau 032d4da8af aarch64: configure: set arch dependent features
Stack is always 16 byte aligned and clz, 64bit operations and unaligned
memory access are fast in aarch64 mode on ARMv8.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-14 22:19:27 +01:00
Robert Krüger d8e763fda7 vf_yadif: Relicense from GPL to LGPL
All copyright holders have agreed to the relicensing.
2014-01-14 00:04:59 +01:00
Martin Storsjö 99e2012523 x86/arm: Add clobber tests to libavresample
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-13 14:13:27 +02:00
Martin Storsjö 44a0a98f92 arm: Add an option for making sure NEON registers aren't clobbered
This is pretty much based on the same test for XMM registers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-11 00:03:00 +02:00
Maxim Polijakowski e6f0bb6527 ATRAC3+ decoder
Cleanup by Diego Biurrun.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-01-09 19:33:07 +01:00
Martin Storsjö 9409c9bdbf configure: Disable networking if winsock2.h is available but winsock functions aren't
Previously, if neither of the checks for the closesocket function
succeeded, we still kept winsock2.h and networking in general
enabled.

When targeting the WinRT API subset, the winsock2.h header is
available (making the check for it succeed, giving the impression
that winsock is available), but tests that actually try to use
such a function will fail. In this case, disable the winsock2.h
feature and networking in general, as if the winsock2.h header
test would have failed in the first place.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-06 18:55:04 +02:00
Luca Barbato e61b8fa560 configure: Update freetype check to follow upstream
The freetype tutorial suggests to use #include FT_FREETYPE_H.

Bug-Id: 616
2014-01-06 11:44:10 +01:00
Diego Biurrun 52ccc4a0ec configure: Support preprocessor macros as header names
New versions of FreeType have moved the location of their API
header(s) and hide the location behind a macro.

Since the location changes between versions and no other way
to know the location exists, this workaround becomes necessary.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-05 11:48:13 +01:00
Diego Biurrun bd0fba8797 configure: Explicitly disable w32threads if the test for it fails
This avoids false positive enabling of w32threads if explicitly
requested on the command line, but dependencies are missing.
2013-12-25 13:00:49 +01:00
Justin Ruggles be7c323176 Add a libwebp encoder 2013-12-21 17:01:42 -05:00
Diego Biurrun 8558595a59 configure: Express atomics/thread deps through the dependency system 2013-12-19 20:53:56 +01:00
Diego Biurrun 11bb5e10c3 build: Define __printf__ to __gnu_printf__ on MinGW*/gcc
This is necessary to avoid GCC assuming MS style printf arguments.
2013-12-16 15:21:42 +01:00
Diego Biurrun 5db4e88ecd configure: Detect Solaris libc in an OpenIndiana/illumos compatible way 2013-12-14 14:09:40 +01:00
Luca Barbato a5a3b398fd configure: Reorder pthreads checks
Some pthreads symbols might be present in libc (as shown on various *BSD)
but not all of them, leading to false positives.

Check for the most common compiler flags before the plain symbol check
to avoid known pitfalls.
2013-12-13 23:53:30 +01:00
Luca Barbato 7cbe1ea9df configure: Move the bz2 and zlib checks below phtreads
There are alternate implementations of those libraries that use pthreads.
2013-12-13 23:53:30 +01:00
Diego Biurrun 7c3388711b configure: Add -D__USE_MINGW_ANSI_STDIO=1 to CPPFLAGS on MinGW32
This enables a more C99-compliant implementation of printf et al.
2013-12-13 16:47:49 +01:00
Diego Biurrun bdc111a162 configure: Detect newer (>=4.1) versions of MinGW32
The MinGW32 project is deprecating its old version macros.
2013-12-13 16:47:49 +01:00
Diego Biurrun a1d7d55247 build: Do not add -g to HOSTCFLAGS
The flag is not unconditionally added to CFLAGS either and the
programs built on the host do not get habitually fed to a debugger.
2013-12-13 16:47:49 +01:00
Diego Biurrun 3bb91a1b5c configure: Add -D__USE_MINGW_ANSI_STDIO=1 to CPPFLAGS on MinGW64
This enables a more POSIX-compliant printf implementation, that
allows using length modifiers like 'z'.
2013-12-11 20:25:28 +01:00
Diego Biurrun 1a5fdf9519 configure: Move log2 dependency declaration to a place it takes effect
It was incorrectly moved in c869fcdeac.
2013-12-10 10:25:12 +01:00