In the configure script, add a pthread detection with
-ldl added to cflags, because uClibc requires -ldl to
link with native libpthread.
Tested with a custom ARM toolchain with uClibc 0.9.33.2 and gcc 4.6.3.
Signed-off-by: Neil Armstrong <narmstrong@neotion.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
with -f lavfi -i testsrc=s=hd1080 as source:
rotate=90*PI/180 vs transpose=clock: 42fps -> 64fps
rotate=180*PI/180 vs vflip,hflip: 75fps -> 77fps
rotate=270*PI/180 vs transpose=cclock: 43fps -> 63fps
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
This also fixes linking failures in doc/examples which where apparently
caused by the linking order between avcodec and avresample
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b70d7a4ac72d23f3448f3b08b770fdf5f57de222':
lavc: add a native Opus decoder.
Conflicts:
Changelog
configure
libavcodec/version.h
Fate tests pass with both avresample as well as swresample based opus decoder, but
are disabled (reference files are very large so i want to think a day or 2 about
if theres an alternative or if they could be avoided, they also dont match the
official samples)
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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>
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>
Add new -march values for Intel CPUs (introduced with GCC 4.9.x), add support
for the missing AMD btver* CPUs, and improve SunCC flags accordingly.
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
It's been deprecated since ffmpeg 2.0
Signed-off-by: James Almer <jamrial@gmail.com>
Analysis of the usage of the switches by: wm4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Allow the configure tool to call the gas-preprocessor with an absolute
path when included with either the "--as" or with a separate "--gas"
option. The patch is backward compatible and will not break any current
configuration setups.
The new behavior that comes with this option can be utilized in the
following ways:
Examples:
- Just as single option that includes both the gas-preprocessor.pl and
cc/as at the same time:
$ configure --as="/opt/app/build-tools/gas-preprocessor.pl \
/Applications/Xcode.app/.../Developer/usr/bin/gcc"
- Call gas-preprocessor with a separate option in conjunction with --as:
$ configure --gas="/opt/app/build-tools/gas-preprocessor.pl" \
--as="/Applications/Xcode.app/.../Developer/usr/bin/gcc"
- Address only the the gas-preprocessor and it will automatically fall
back to as or cc whichever that's defined:
$ configure --gas="/opt/app/build-tools/gas-preprocessor.pl"
- Or if no gas-preprocessor.pl is explicitly defined, it falls back to
the old behaivor.
Some compilers when given -x objective-c will tell that they dont support
that but return success. Using a .m file instead returns proper failure in
that case
This should fix a build failure on freebsd
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
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>
Would have shown the trailing semi-colon in lavu/log.c that broke detection of
256 colour capable terminals.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Based on original code by Christophe Gisquet in 2010, updated to work
with current ffmpeg APIs.
Supports grabbing a single window or an area of the screen, including
support for multiple monitors (Windows does funky stuff with negative
coordinates here).
I've moved most of the configuration to AVOptions; the input file name
is now only the string "desktop", or "title=<windowname>" to select a
single window. The AVOptions are the same as x11grab where possible.
Code has been added to support a "show_region" mode, like x11grab, which
will draw a rectangle on the screen around the area being captured.
Instead of duplicating code for paletted image handling, I make use of
the GDI API's ability to output DIB (BMP) images, which can be run
through ffmpeg's existing BMP decoder.
Signed-off-by: Calvin Walton <calvin.walton@kepstin.ca>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
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>
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>
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>
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>
* commit '0f0d1d056e1a3ad3db32b7d1a06286b2841e91b1':
configure: Always use -DOPJ_STATIC when checking for openjpeg
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '57f09608e1600d1cf1679885a46f5004d522d68f':
dsputil: Move thirdpel-related bits into their own context
Conflicts:
libavcodec/svq3.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '7a650caf6436ddfe417bdcb5ce520c96c779af7b':
configure: Split some logical blocks off from HAVE_LIST
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd0adf55c05beaf80420747dded2d1884bff377ec':
configure: Split some logical blocks off from CONFIG_LIST
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '07ea8a7e943ea6a7bdcd736e2fc3ed357dc15c57':
configure: Group and sort function/struct/type checks
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
AVX2 support was introduced in Yasm 1.2.0, and some distros
like Debian still feature version 1.1.0
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b4dd424d96f09f9bafb88e47f37df65dc4529143':
Remove all SPARC architecture optimizations
Conflicts:
Makefile
configure
libavcodec/sparc/dsputil_vis.c
libavcodec/sparc/dsputil_vis.h
libavcodec/sparc/hpeldsp_vis.c
libavcodec/sparc/simple_idct_vis.c
libavcodec/sparc/vis.h
libswscale/sparc/yuv2rgb_vis.c
libswscale/swscale_internal.h
If someone wants to maintain these (or other) SPARC optimizations, please
contact me or ffmpeg-devel.
I am happy to revert this removial if theres someone considering to
maintain this code.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'bbb64356cca65d7a2a33f59b2267ee58f28a061a':
build: Record dependency of eatqi decoder on dsputil
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9ecf1b62f37ef9cbdf2d7300a052cd704c4ba731':
build: Drop stray MLP decoder dependency on dsputil
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '88b240646f57a62299c6c4c4d7554f0a80c3a29a':
build: Drop stray mpc8 decoder dependency on dsputil
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b3c6ee199e75bbad2908253f11e871500dd38531':
configure: Group toolchain options together in help output
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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
[....]
}
* commit 'c708b5403346255ea5adc776645616cc7c61f078':
timer: use mach_absolute_time as high resolution clock on darwin
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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.
* commit 'd48430c367947a64647c6959cf472f2c01778b17':
build: Let the SVQ3 decoder depend on the H.264 decoder
Conflicts:
libavcodec/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '84bf8817206126dab3c9abf6055b593389bcb241':
configure: Split x86 SIMD architecture extensions into separate list
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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.
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
* commit 'fb3b2f5d923a6e19d80f21eb4e081674bceec810':
configure: Set the thread type after resolving dependencies
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2f02bbcca050936686482453078e83dc25493da0':
build: Let the ffvhuff decoder/encoder depend on the huffyuv decoder/encoder
Conflicts:
configure
libavcodec/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '34150be515cd9c43b0b679806b8d01774960af78':
build: Let the iac decoder depend on the imc decoder
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '8e0cf39faf02536dca08f4fe628a66d1ae022fde':
build: Let all MJPEG-related decoders depend on the MJPEG decoder
Conflicts:
configure
libavcodec/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0a36988e48dd581d29e77f768f987738bdf365f0':
build: Let AMV decoder depend on the SP5X decoder
Conflicts:
configure
libavcodec/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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>
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.
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.
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.
The current configure fails when static libbluray is compiled with libxml2
support.
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
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>
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>
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.
This fixes cpunop detection and unbreaks NASM assembly
Signed-off-by: Dave Yeo <daveryeo@telus.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '192ccc5034ad4ac1b5022fc16c1162267add6a0f':
build: The MPEG-4 video parser depends on h263dsp
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '874c751cc5b99cd68932e21c2c3a0d21134207e0':
threads: Check w32threads dependencies at the configure stage
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd261719319a505e1716e8b52fc955bef0503ff96':
configure: do not link libraries against program-specific dependencies
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '60e6cecf9bc7d6a238e6b316da52edcc6d1ef7f8':
configure: avserver does not need $ldl
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '6398d8fd813490fc3900baf8c788f803d8e17b73':
configure: clang: add -Qunused-arguments to as|ld_flags as well
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The DCBZL instruction is not available for the e500v1 and e500v2
architectures, but may still be recognized by the toolchain, so we need to
remove the test for it explicitly for these architectures.
References: PowerPC™ e500 Core Family Reference Manual (Freescale)
Found-by: Ståle Kristoffersen <staalebk@ifi.uio.no>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Enable compilation on machines with an old libfdk-aac.
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
7.1(wide) and 7.1(wide-side) channel layouts are supported in fdk_aac since october 2013 (commit fa3eba1644)
Signed-off-by: Jean First <jeanfirst@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
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.
* commit '8267f9363532b23b3b8b4e27491ee2d412a8aec3':
configure: Set default HOSTCFLAGS/HOSTCPPFLAGS after compiler detection
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* cehoyos/master:
Avoid a possible overflow when reading Nikon avi files.
Add h263dsp dependency to mpeg1video and mpeg2video encoders.
Fix compilation with --disable-hwaccel=mpeg1_xvmc,mpeg2_xvmc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'dc4d726bab59f349d366916ba01df16289e5c81f':
build: Add separate hidden config option for the intrax8 code
Conflicts:
libavcodec/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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.
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>
* qatar/master:
arm: Add an option for making sure NEON registers aren't clobbered
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9409c9bdbfd829353473ee6cc3e91c726481c069':
configure: Disable networking if winsock2.h is available but winsock functions aren't
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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>
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>
In particular the mutex initialization for example won't actually
compile with e.g. gcc 2.95.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
This part of the script doesn't check if git command is available and produce error if not.
It is 2 years since address changed and it is more reasonable to remove it than fix it.
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
this allows seperate installation of shared libs that should not conflict with
whatever is already installed.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '8558595a59913a4667f57d5a4658b1340f1a4354':
configure: Express atomics/thread deps through the dependency system
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '11bb5e10c36539bcc303ceaac6f88d9ecb66e07f':
build: Define __printf__ to __gnu_printf__ on MinGW*/gcc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
avoids picking up a library that could produce invalid bitstreams and
fixes build issues with the same.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5db4e88ecd32485341f6150c00f5ee5bfa74f62d':
configure: Detect Solaris libc in an OpenIndiana/illumos compatible way
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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.
* commit '7c3388711b7243d059db39aa04b754baf2156934':
configure: Add -D__USE_MINGW_ANSI_STDIO=1 to CPPFLAGS on MinGW32
Merged-by: Michael Niedermayer <michaelni@gmx.at>
No need to define it twice on mingw-w64 >= v3.
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* commit 'c869fcdeac3b7cd71a852b928902daadeca55685':
configure: Move toolchain dependency declarations to a more appropriate place
Merged-by: Michael Niedermayer <michaelni@gmx.at>
It was misplaced during merge of commit 120797e2ef
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Directly loads AviSynth through LoadLibrary instead of relying on
Video for Windows, and supports using AvxSynth (via dlopen) to
open scripts on Linux and OS X.
Error messages from AviSynth/AvxSynth are now reported through
av_log and exit, rather than the traditional behavior of generating
an error video that the user would need to watch to diagnose.
The main rewrite was authored by d s <avxsynth.testing@gmail.com>
from the AvxSynth team, with additional contributions by
Oka Motofumi <chikuzen.mo@gmail.com>
Stephen Hutchinson <qyot27@gmail.com>
Diego Biurrun <diego@biurrun.de>
Anton Khirnov <anton@khirnov.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Include the freetype header, in-directly through a macro, like it
is done in the drawtext filter. Do not break if the header is moved.
Unfortunately the drawtext filter included the file where the include
macros are defined in a wrong way. This is not needed and breaks the
build. Remove that #include line too.
Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
Replace the inline awk script with a Perl script which tracks the
dependencies recursively.
This allows to correctly track dependencies for files including files
with a second level include (for example: ffmpeg-devices.texi ->
devices.texi -> outdevs.texi).
This also adds a dependency on perl for computing the dependencies, which
should not be a problem since perl is already required all the way for
building documentation.
This is a variant of commit 628ceac652
which was reverted due to out-of-tree build failure.
Originally written by James Almer <jamrial@gmail.com>
With the following contributions by Timothy Gu <timothygu99@gmail.com>
* Use descriptions of libraries from the pkg-config file generation function
* Use "FFmpeg Project" as CompanyName (suggested by Alexander Strasser)
* Use "FFmpeg" for ProductName as MSDN says "name of the product with which the
file is distributed" [1].
* Use FFmpeg's version (N-xxxxx-gxxxxxxx) for ProductVersion per MSDN [1].
* Only build the .rc files when --enable-small is not enabled.
[1] http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
configure: Detect msvcrt libc with a CPP check instead of a link check
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '5ec467328122b80fac94c2d5e3e7540d50381868':
configure: Add detected C library and host compiler to informative output
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f058f384a0d76bfd125f4738dceab7c890186432':
configure: Do not use pthread_create to check for pthread
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Certain instrumentation addons leads to a false positive in configure
and link failures at the end of the build phase.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This more closely matches the actual use, also we use plain
strip without these flags for striping
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>