This will be useful to test more aggressively for failures to mark XMM
registers as clobbered in Win64 builds, and prevent regressions thereof.
Based on a patch by Ramiro Polla <ramiro.polla@gmail.com>
Now that 0.8 is out we can reapply this commit. It breaks shared
avserver builds due to avserver using internal libavformat symbols,
which are now hidden, so this commit also disables avserver with
--enable-shared.
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>
The early disabling of irrelevant arch extensions is no longer
required, and removing it makes dependencies involving these
work as expected.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Haiku does not have a separate libm, so do not try to link to it.
Signed-off-by: François Revol <revol@free.fr>
Signed-off-by: Mans Rullgard <mans@mansr.com>
NASM versions older than 2.08 fail to build ffmpeg with several
"error: operation size not specified" errors but this is not caught in
configure.
Fix that by checking if "pextrd [eax], xmm0, 1" works in configure.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
This moves network_extralibs setup before use so that the link tests
for network functions work correctly.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Dragonfly, NetBSD, and OpenBSD do not support symbol versioning
although our link test passes. Disable it explicitly for these
systems.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Some variants of mktemp require a template, so provide one when
checking for the command. We already supply a template in the
subsequent uses of mktemp.
Thanks to Michael Kostylev.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This does the same thing and also fixes the trapping in
some (possibly broken) shells.
Suggested by Michael Kostylev.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Recent gcc versions define __ARM_PCS or __ARM_PCS_VFP to indicate the
VFP ABI in use, and ARM RVCT defines __SOFTFP__ when using this ABI.
If none of these are defined, check $cross_prefix and $cc for the
substring "hardfloat", and finally fall back to a linker test. This
gives the correct result in most configurations.
Some linkers fail if this flag is used when creating an executable file.
Since the flag is meaningful only for shared libraries, dropping it from
the main link flags is correct.
Fixed-point AC-3 encoder renamed to ac3_fixed.
Regression test acodec-ac3 renamed to acodec-ac3_fixed.
Regression test lavf-rm changed to use ac3_fixed encoder.
Originally committed as revision 26209 to svn://svn.ffmpeg.org/ffmpeg/trunk
FILTERNAME=ARGS and FILTERNAME:ARGS syntax.
The same filter class will be used for managing all the libopencv
filtering functions.
Originally committed as revision 26079 to svn://svn.ffmpeg.org/ffmpeg/trunk
Galvão Póvoa <marspeoplester gmail com>, mentored by Robert Swain <robert
dot swain gmail com>.
Originally committed as revision 26051 to svn://svn.ffmpeg.org/ffmpeg/trunk
This macro is disabled if --enable-small or --disable-optimizations are set.
Currently, this leads to warnings about functions being defined but not used,
for functions in header files.
By defining av_always_inline as inline or as av_unused, we avoid these
warnings.
This doesn't make a normal build with --enable-small any larger,
since the compiler probably chooses not to inline these functions even
if they're marked as inline.
Originally committed as revision 26032 to svn://svn.ffmpeg.org/ffmpeg/trunk
Seek test reference updated because FLAC seeking now works properly.
Fixes roundup issue 1150.
Patch by Michael Chinen [mchinen at gmail]
Originally committed as revision 25914 to svn://svn.ffmpeg.org/ffmpeg/trunk
The decoder is just a wrapper around the AAC decoder.
based on patch by Paul Kendall { paul <ät> kcbbs gen nz }
Originally committed as revision 25642 to svn://svn.ffmpeg.org/ffmpeg/trunk
This allows compilation of one of them without requiring the others'
dependencies to be present.
Originally committed as revision 25535 to svn://svn.ffmpeg.org/ffmpeg/trunk
The demuxer inspects the payload type of a received RTP packet and
handles the cases where the content is fully described by the payload type.
Originally committed as revision 25527 to svn://svn.ffmpeg.org/ffmpeg/trunk
The SAP muxer uses network functions directly, uses the rtp protocol and the
udp protocol. The network functions and the udp protocol are both transitively
enabled via the rtp protocol, so that's the only dependency that needs to
be stated.
Originally committed as revision 25423 to svn://svn.ffmpeg.org/ffmpeg/trunk
hip_decode_init() isn't used by the wrapper, and can be absent from the
library if lame was configured with --disable-decoder (like it is done
for windows builds of VLC)
Unfortunately this also removes the way to detect a libmp3lame more recent
than the buggy 3.98.2
Patch by Rafaël Carré, rafael carre at gmail
Originally committed as revision 25391 to svn://svn.ffmpeg.org/ffmpeg/trunk
On OS X, this struct is only available if _DARWIN_C_SOURCE is defined,
when we have _POSIX_C_SOURCE defined. This allows the struct to be found,
enabling proper IPv6 multicast functionality on OS X.
The define is already set within the file that uses the struct. Setting it
only for this test in configure avoids having to keep it defined for the
whole build.
Originally committed as revision 25370 to svn://svn.ffmpeg.org/ffmpeg/trunk
This makes e.g. --disable-everything --enable-demuxer=rtsp actually
enable the rtsp demuxer and everything else that is needed.
Originally committed as revision 25356 to svn://svn.ffmpeg.org/ffmpeg/trunk
See thread:
Subject: [FFmpeg-devel] [PATCH] Port MPlayer blackframe filter.
Date: Sun, 26 Sep 2010 01:10:40 +0200
Originally committed as revision 25214 to svn://svn.ffmpeg.org/ffmpeg/trunk
See thread:
Subject: [FFmpeg-devel] [POC] frei0r wrapper
Date: Tue, 24 Aug 2010 21:37:32 +0200
Originally committed as revision 25165 to svn://svn.ffmpeg.org/ffmpeg/trunk
This is set to 1 if the stack is guaranteed to be suitably aligned
for the strictest access mode of the machine.
Originally committed as revision 25151 to svn://svn.ffmpeg.org/ffmpeg/trunk
To avoid being burned at the stake by an angry mob, I am forced to
revert this commit.
Originally committed as revision 24949 to svn://svn.ffmpeg.org/ffmpeg/trunk
Release 4.1 changed the flag used to pass options through the gcc
translation layer. Detect which version is used, and choose the
appropriate flag.
Originally committed as revision 24945 to svn://svn.ffmpeg.org/ffmpeg/trunk
This allows using a libvpx that has been configured as decoder/encoder only.
patch by Frank Barchard, fbarchard google com
Originally committed as revision 24742 to svn://svn.ffmpeg.org/ffmpeg/trunk
Many H.264 derivatives, like RV40 and VP8, use the H.264 prediction functions
but not the weight/loopfilter functions.
This should reduce the size of builds with one of these derivatives but without
H.264 decoding itself.
Originally committed as revision 24741 to svn://svn.ffmpeg.org/ffmpeg/trunk
Without this flag -Wall generates warnings that nobody wants to see fixed or
worked around. Disabling those warnings is thus the best solution.
Originally committed as revision 24666 to svn://svn.ffmpeg.org/ffmpeg/trunk
The corresponding lavfi-pixfmts BE tests are not yet added, as there
are some bugs in the scaler (scaling rgba, argb, bgra, abgr, yuva420p)
which result in differences with the LE reference, and I cannot
visually check the generated files on BE.
Originally committed as revision 24657 to svn://svn.ffmpeg.org/ffmpeg/trunk
without value when the target library is disabled.
If it does not explicitly return 0, when the last library is disabled
(swscale), the final "configure" exit value is 1, even if the
configure script is successfully executed. So it breaks scripts that
invoke configure and rely on 0 for success and 1 for failure.
Patch by Jean-Daniel Dupas reverse(<org.shadowlab@devlists>).
Originally committed as revision 24585 to svn://svn.ffmpeg.org/ffmpeg/trunk
in favor of the newly added corresponding functions
av_parse_video_size() and av_parse_video_rate() defined in
libavcore/parseutils.h.
This change also adds a linking-time dependency of libavcodec and of
libavfilter on libavcore.
Originally committed as revision 24518 to svn://svn.ffmpeg.org/ffmpeg/trunk
The new library is meant to contain the core multimedia utilities for
FFmpeg, to make them shareable between more libav* libraries.
See thread:
Subject: [FFmpeg-devel] [RFC] New library for shared non-generic libav* utils
Date: Fri, 9 Jul 2010 01:07:40 +0200
Originally committed as revision 24393 to svn://svn.ffmpeg.org/ffmpeg/trunk
This test verifies the pixdesc code by comparing the output with and
without a filter which should have no effect on the image. Since the
available pixel formats depend on the byte order of the machine, a
simple reference checksum is not possible.
The test originally tried to solve this by generating a reference file
on the fly. The problem with this is that the test framework expects
the reference file in the source tree, and writing to the source tree
is not allowed.
To avoid complicating the test framework, we instead provide two
reference files and select which to use based on the byte order.
Originally committed as revision 24330 to svn://svn.ffmpeg.org/ffmpeg/trunk
Only names consisting of letters, numbers, hyphens, and underscores
are allowed.
Originally committed as revision 24222 to svn://svn.ffmpeg.org/ffmpeg/trunk
The AAC decoder and ADTS-to-ASC BSF both require the header decoder
but not full parsing capabilities.
Originally committed as revision 24217 to svn://svn.ffmpeg.org/ffmpeg/trunk
Remove check for an specific w32api version, checking instead if vfw.h
supports vfw capture. The defines in w32api 3.12 were wrong, so this must be
accounted for in the check.
Originally committed as revision 24203 to svn://svn.ffmpeg.org/ffmpeg/trunk
The print_enabled() function prints all elements in a list which
are enabled.
Originally committed as revision 24119 to svn://svn.ffmpeg.org/ffmpeg/trunk
Check for GNU assembler only when asm is enabled. Show a warning for
ppc/altivec only, and fail on ARM.
Originally committed as revision 23964 to svn://svn.ffmpeg.org/ffmpeg/trunk
This checks which assembler syntax is supported and defines macros
for register names accordingly.
Originally committed as revision 23952 to svn://svn.ffmpeg.org/ffmpeg/trunk
This allows explicitly enabled things to _select others with the
intended result.
Originally committed as revision 23843 to svn://svn.ffmpeg.org/ffmpeg/trunk
gprof is far too intrusive to be of use as a profile for ffmpeg,
and it fails to build in many configurations. Oprofile is a
better tool for profiling on Linux.
Originally committed as revision 23807 to svn://svn.ffmpeg.org/ffmpeg/trunk
Adding new libs to the front of the list allows them to resolve
symbols against previously added ones.
Originally committed as revision 23780 to svn://svn.ffmpeg.org/ffmpeg/trunk
The 'warn' function records a warning message for display after other
informational messages.
Originally committed as revision 23760 to svn://svn.ffmpeg.org/ffmpeg/trunk
OS/2 SMP support is rare, and a pthreads library exists.
No need to keep this code.
Originally committed as revision 23731 to svn://svn.ffmpeg.org/ffmpeg/trunk
For GCC, barcelona is just an alias for amdfam10, so simply add it in
there.
Originally committed as revision 23730 to svn://svn.ffmpeg.org/ffmpeg/trunk
Relevant BeOS variants support pthreads, so there is no need to
maintain the beos-native threads interface.
Originally committed as revision 23729 to svn://svn.ffmpeg.org/ffmpeg/trunk
It allows VLD MPEG-2 decoding using DXVA2 (GPU assisted decoding API under
VISTA and Windows 7).
It is implemented by using AVHWAccel API.
Originally committed as revision 23644 to svn://svn.ffmpeg.org/ffmpeg/trunk
"config.err". The former name was misleading, as the file contains
useful information not necessarily related to errors.
Originally committed as revision 23630 to svn://svn.ffmpeg.org/ffmpeg/trunk
Apparently the compiler sometimes bypasses the normal assembler, in
which case the asm label variant works. If the file contains any
inline asm, this bypassing is not done, and the assembler chokes on
invalid syntax. Inserting a dummy asm() statement in the test when
the compiler supports it makes sure no shortcuts are taken and the
test fails as it should.
Originally committed as revision 23616 to svn://svn.ffmpeg.org/ffmpeg/trunk
When symbol versioning is enabled, moving symbols from one library to
another breaks binary compatibility. This adds wrappers with the old
version tag for the av_*packet functions recently moved to lavc.
Originally committed as revision 23611 to svn://svn.ffmpeg.org/ffmpeg/trunk
BeOS support has been broken for many years and the "maintainer" of the port
has not reacted to countless requests to get the port fixed.
approved by Mans
Originally committed as revision 23562 to svn://svn.ffmpeg.org/ffmpeg/trunk
The test for .align syntax was apparently unreliable with some compilers.
Using the .p2align directive instead avoids the need for this test.
Originally committed as revision 23428 to svn://svn.ffmpeg.org/ffmpeg/trunk
The license of libvpx is incompatible with the (L)GPL. As long as this is
the case, the only way to use it is by marking the result as nonfree.
Originally committed as revision 23371 to svn://svn.ffmpeg.org/ffmpeg/trunk