Use sched_getaffinity to determine the number of logical CPUs.
Limits the number of threads to 16 since slice threading of H.264
seems to be buggy with more than 16 threads.
When turned on, H264/CAVLC gets ~15% (CVPCMNL1_SVA_C.264) slower for
ultra-high-bitrate files, or ~2.5% (CVFI1_SVA_C.264) for lower-bitrate
files. Other codecs are affected to a lesser extent because they are
less optimized; e.g., VC-1 slows down by less than 1% (all on x86).
The patch generated 3 extra instructions (cmp, cmovae and mov) per
call to get_bits().
The performance penalty on ARM is within the error margin for most
files, up to 4% in extreme cases such as CVPCMNL1_SVA_C.264.
Based on work (for GCI) by Aneesh Dogra <lionaneesh@gmail.com>, and
inspired by patch in Chromium by Chris Evans <cevans@chromium.org>.
Firstly, this test never worked as intended, always reporting
success. Secondly, bswap is available from 486 onward and can
thus be assumed present.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Note, this protocol doesn't yet check verify the server
certificate against a local database of trusted CA root
certificates.
Signed-off-by: Martin Storsjö <martin@martin.st>
It currently use the simple api and is using the latency information
provided only to offset the stream start.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
With the following additions:
* support to gray format
* support to yuva420p format
* parametric luma/chroma/alpha radius
* consistency check on the radius values, avoid crashes with invalid values
Signed-off-by: Anton Khirnov <anton@khirnov.net>
The inline asm added in bf5d46d uses the 'y' modifier which
is only supported from gcc 4.5. This check allows building
with older compilers.
Signed-off-by: Mans Rullgard <mans@mansr.com>
When using suncc to build, the Solaris linker will mark
an executable with each instruction set encountered by
the Solaris assembler. As our libraries contain their own
guards for processor-specific code, instead suppress
generation of the HWCAPS ELF section on Solaris x86 only.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
Using Sun's compiler on Solaris, -xc99 is as much a linker flag as a
compiler flag, so add it to LDFLAGS.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
The output from -v with gcc 4.6 has changed such that the search
pattern matches too soon without making it more strict.
Signed-off-by: Mans Rullgard <mans@mansr.com>
These commands have the same form, and using a common macro allows
it to be used elsewhere without further duplication.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This silences warnings about pointer target sign mismatches as
already done for gcc with -Wno-pointer-sign.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Setting SRC_PATH to "." when building in-tree removes the need
for a quoted version of the source path since out-of-tree builds
are not possible if the pathname contains spaces.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This removes an unsightly override of the 'optimizations' setting
only to make the configure report print 'small' when --enable-small
is used.
Signed-off-by: Mans Rullgard <mans@mansr.com>
These flags are accepted without error but produce an annoying
warning. Filtering them out makes the build less noisy.
Signed-off-by: Mans Rullgard <mans@mansr.com>
VAAPI is disabled by default so it should have a --enable-vaapi option
documented, not a --disable-vaapi.
Signed-off-by: Mans Rullgard <mans@mansr.com>
In -std=c99 mode GCC defines __STRICT_ANSI__ to hide non-ANSI interfaces.
This causes declarations for some POSIX functions to be omitted from system
headers, which causes compilation failures.
Older nasm versions have trouble assembling certain AVX instructions, but the
current AVX check did not detect this. Update the check to use an instruction
that triggers the nasm problem.
This separation allows these functions to be used in a cleaner
fashion from other codecs (e.g. qdm2) and simplifies creating
optimised versions of them.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Also update libx264 presets to keep closed gop as default.
Signed-off-by: Jindrich Makovicka <makovick@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
046f081b46 reorganized the CPPFLAGS to no
longer add -D_POSIX_C_SOURCE unconditionally, but only on systems (e.g.,
glibc based ones) that require it. As kFreeBSD uses glibc, it needs to
be treated similar.
Additionally, _BSD_SOURCE is turned on to enable some additional types
such as caddr_t, which are normally enabled on BSD but not with glibc.
Adding _POSIX_C_SOURCE to CPPFLAGS globally produces all sorts of problems
since it causes certain system functions to be hidden on some (BSD) systems.
The solution is to only add the flag on systems that really require it, i.e.
glibc-based ones.
This change makes BSD systems compile out-of-the-box without the need for
adding specific flags manually. It also allows dropping a number of flags
set manually on a file-per-file basis, but were only present to work around
breakage introduced by the presence of _POSIX_C_SOURCE.
Also add _XOPEN_SOURCE to CPPFLAGS for glibc systems. We use XSI extensions
in several places already, so it is preferable to define it globally instead
of littering source files with individual #defines only needed for glibc.
The low quality mode is off by default and never tested. The high
quality mode is also plenty fast enough.
Signed-off-by: Mans Rullgard <mans@mansr.com>
With the following additions:
* support to anti-aliased glyph rendering
* support to UTF-8 text and Unicode chars rendering
* support for RGB packed formats
* fix minor errors and typos in the filter description
* extend/clarify examples in the filter description
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This unbreaks static compilation using pkg-config on systems in need of -lm.
Based on an mplayer2 patch by Uoti Urpala <uau@mplayer2.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
This unbreaks static compilation when using pkg-config.
Based on an mplayer2 patch by Uoti Urpala <uau@mplayer2.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
$subj
>From 557176d961c70604c2a96d81aff4bd6faa670d8a Mon Sep 17 00:00:00 2001
From: Alex Converse <aconverse@google.com>
Date: Thu, 21 Apr 2011 12:11:42 -0700
Subject: [PATCH] Remove RDFT dependency from AAC decoder.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------1"
This is a multi-part message in MIME format.
--------------1
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit
It was used for an old implementation of the SBR filterbank.
./configure --disable-everything --disable-ffplay --enable-decoder=aac works.
This restores the behaviour of running only the builtin
regression tests when no path to external samples is given.
aa3805a inadvertently broke this by always setting SAMPLES
to something. Using := makes the ifdef test work as expected
when the FATE_SAMPLES environment variable is empty.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Stripping is generally best left to package management tools, and
since unstripped copies are kept in the build tree, any arguments
about saving space (no matter how insignificant) are void.
Signed-off-by: Mans Rullgard <mans@mansr.com>
When -std=c99 is used, GCC defines __STRICT_ANSI__ to hide non-ANSI
interfaces; on MinGW32, when this macro is defined, some functions that are
part of POSIX but not of Windows APIs are disabled, including strcasecmp().
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This moves the check for --as-needed linker support before all
library tests, ensuring consistent behaviour between the checks
and the actual link step.
Signed-off-by: Mans Rullgard <mans@mansr.com>
ICC lies about the version of gcc it emulates, which results
in unsupported attributes sometimes being used. The warning
is an annoyance and should be disabled.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Conio.h is a non-standard header and may not have kbhit()
prototyped. This fixes compile on OS/2 where the EMX version (we're
using a fork) of conio.h only has getch() and getche().
Signed-off-by: Mans Rullgard <mans@mansr.com>
Remove usage of tcgetattr and tcsetattr to modify terminal
parameters, and rely on ctrl-c to stop instead of pressing 'q'.
On systems with conio.h, keep the old behavior.
Changing the terminal settings causes problems if multiple instances
are running asynchronously on the same terminal, such as during a
parallel FATE run, or if the process crashes before restoring the
terminal. In both cases, the terminal state is messed up requiring
a manual reset.
Signed-off-by: Mans Rullgard <mans@mansr.com>
These windows do not really belong in fft/mdct files and were
easily confused with the similarly named tables used by rdft.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Since initially committed in 2004, this codec has only been touched
for maintenanance. Functionally, it contains no novel ideas and
its intended audience is better served by existing mature codecs.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This fixes ugliness when configure outputs its (empty) results on HPUX
(maybe some other UNIXes too):
Enabled indevs:
pr: -- empty file
Signed-off-by: Mans Rullgard <mans@mansr.com>
This makes existing pkg-config uses as well as the libsdl checks
use the new pkg-config helper functions, which should be more
robust against broken systems.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This adds helper functions for checking packages with pkg-config
and managing the associated flags.
Note that pkg-config use is still discouraged due to widespread
poor practices resulting in broken flags in many situations. A
few badly designed packages require flags only obtainable using
pkg-config, and these functions are intended for those cases.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This makes it possible to pass a space-separated list of functions
to check_func_headers and check_lib2. If any function is missing,
none are enabled as available, so this should only be used for
all-or-nothing sets, i.e. groups in which none will be used if any
one is missing.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Although not documented, clang does support the --sysroot flag, and it
does the right thing. Use this flag intead of -isysroot which only
applies to header file searches, not the linker.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Use the FATE_SAMPLES environment variable if samples location
is not set with the --samples configure option or on the make
command line.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This causes lxlite to use stdout instead of vioXXX
functions. This improves fate and build logs readability.
Affects OS/2 only.
Signed-off-by: Mans Rullgard <mans@mansr.com>
It is pretty hopeless that other considerable projects will adopt
libavutil alone in other projects. Projects that need small footprint
are better off with more specialized libraries such as gnulib or rather
just copy the necessary parts that they need. With this in mind, nobody
is helped by having libavutil and libavcore split. In order to ease
maintenance inside and around FFmpeg and to reduce confusion where to
put common code, avcore's functionality is merged (back) to avutil.
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
The colon operator of expr always anchors the pattern at the start
of the string. An explicit ^ in the pattern has unspecified
behaviour, so remove it.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This makes the cc_ident value, which is used in FATE reports, include
all interesting parts of the gcc version string.
Signed-off-by: Mans Rullgard <mans@mansr.com>