Only MSVC 2010 in x64 mode, in the static msvcrt, had a
stray log2 function (which wasn't available in the headers).
MSVC 2013 has got a proper log2 function though.
Signed-off-by: Martin Storsjö <martin@martin.st>
$cc is the compiler requested as main target compiler, while $_cc
is the actual tool tested in the probe function right now (which
can also be e.g. the host compiler).
Signed-off-by: Martin Storsjö <martin@martin.st>
This is enabled by default, but can be disbled via the -noautorotate
option.
Based on a patch by Clément Bœsch.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit 'eaa2d123f0a643664721593d248ece6bcd85f1e6':
log: Print a full backtrace along with error messages under Valgrind
Conflicts:
libavutil/log.c
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Useful to understand where and in what execution state a certain message
is generated. It is enabled only when optimizations are disabled, since
function names are not printed otherwise.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
It's obsolete after the addition of the pkg-config check.
See http://comments.gmane.org/gmane.comp.video.ffmpeg.devel/191983 for the
relevant discussion
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
This is a preparation patch to submit optimized code for MSA (MIPS-SIMD-Architecture)
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Imagination Technologies has come up with MIPS Warrior Processor Cores.
More details can be found at-
http://www.imgtec.com/mips/warrior/pclass.asphttp://www.imgtec.com/mips/warrior/iclass.asp
This is a preparation patch to submit optimized code for MSA (MIPS-SIMD-Architecture)
This patch set is adding support for P5600 and I6400 CPUs.
MIPS 'generic' case is added, with mips32r2 arch as default (fpu and dsp opt enabled).
Sample configurations for new MSA architectures-
$ ./configure --enable-cross-compile --cross-prefix=<PATH> --arch=mips --target-os=linux --cpu=p5600
$ ./configure --enable-cross-compile --cross-prefix=<PATH> --arch=mips --target-os=linux --cpu=i6400
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Reviewed-by: Nedeljko Babic <Nedeljko.Babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4978850ca2cb1ec6908f5bc79cc592ca454d11e8':
build: Split JPEG-related tables off into a separate component
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd0a63d8b989647ffdb5f40da8e1feaffe1a8e791':
qsvdec: split off some code that will be shared with the encoder
Conflicts:
libavcodec/Makefile
libavcodec/qsvdec.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
unsigned overflows are well defined in C and used for example in crypto
and various other places.
None of the affected warnings currently shown points to an actual defect
untested
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Real world MMX code does not put EMMS at the start and end of every function,
it would be incredibly inefficient to do that
thus do not warn about that
Tested-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '9c8074050745184a61059ad56045ad711299e33d':
configure: Mark qsv subsystem as not selectable on the command line
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b77e335e441040a40fc6156b8e4a134745d10233':
configure: Move the .object_arch check to the right place
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'dcae2e32f7d8a1ca5fb8c1e4aa81313be854dd73':
arm: Suppress tags about used cpu arch and extensions
Merged-by: Michael Niedermayer <michaelni@gmx.at>
When all the codepaths using manually set .arch/.fpu code is
behind runtime detection, the elf attributes should be suppressed.
This allows tools to know that the final built binary doesn't
strictly require these extensions.
Signed-off-by: Martin Storsjö <martin@martin.st>
There are no independant uses of mips32r2 instructions except for the
FPU parts. Due to the heavy use of mips32r2 specifc fpu extensions, I
am guessing the original author intended MIPSFPU to imply MIPS32R2 anyway.
Since these fpu instructions are available on mips64 (non-r2), enable them
there as well.
Also remove the last occurence of HAVE_MIPS32R2 (which is coupled to
HAVE_MIPSFPU anyway).
mips32r2 is left in the list of options form compatability so that using
--disable-mips32r2 doesn't break anything.
Signed-off-by: James Cowgill <james410@cowgill.org.uk>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '82b6e451161f19ab90bfb9565b710021caf5dcbd':
configure: Move the cross_prefix setting after the toolchain one
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '521979e6b1e7a89751aebc285a40d6508f8af48f':
configure: Properly fail when libcdio/cdparanoia is not found
Conflicts:
configure
See: f514b5dff7
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f7cc6627c01ad3f5bc6ea2d0e6f8adb3a0b490d7':
configure: Use pkg-config for libdc1394 discovery
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Since not all systems need the libraw1394 dependency, let pkg-config
provide the list of libraries actually needed.
The libdc1394-2.pc file has been included since version 2 (2008-01-05),
so it should be safe to use.
* commit 'd615187f74ddf3413778a8b5b7ae17255b0df88e':
aacdec: Support for ER AAC ELD 480.
Conflicts:
libavcodec/aacdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '3d5d46233cd81f78138a6d7418d480af04d3f6c8':
opus: Factor out imdct15 into a standalone component
Conflicts:
configure
libavcodec/opus_celt.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This fixes builds with vc1_parser enabled without vc1_decoder. All
the vc1_decoder object files were included in the vc1_parser line
in libavcodec/Makefile before, but architecture specific object files
for vc1_decoder were not.
Signed-off-by: Martin Storsjö <martin@martin.st>
this makes the static libraries binary reproducible
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
this makes the static libraries binary reproducible
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The only difference with mp=pp7 is that default mode is "medium", as stated
in the MPlayer docs, rather than "hard".
Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
Compared to existing, common opensource H264 encoders, this can be
useful since it has got a different license (BSD instead of GPL).
Performance- and qualitywise it is comparable to x264 in ultrafast
mode.
Hooking it up as an encoder in libavcodec also simplifies comparing
it against other common encoders.
This requires OpenH264 1.3 or newer. Since the OpenH264 API and ABI
changes frequently, only releases are supported.
To take advantage of the OpenH264 patent offer, the OpenH264 library
must not be redistributed, but downloaded at runtime at the end-user's
system.
Signed-off-by: Martin Storsjö <martin@martin.st>
This allows using libraries that are detected via pkg-config with
msvc. (The libraries themselves may have to be built with MSVC
though.)
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '8ebf02f8f530240edf7e45f35f7647ef9dd44a58':
libavformat: Only use MoveFileExA when targeting the desktop API subset
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The MoveFileExA is available in the headers regardless which API
subset is targeted, but it is missing in the Windows Phone link
libraries. When targeting Windows Store apps, the function is
available both in the headers and in the link libraries, and thus
there is no indication for the build system that this function
should be avoided - such an indication is only given by the
Windows App Certification Kit, which forbids using the MoveFileExA
function.
Therefore check the WINAPI_FAMILY defines instead, to figure out
which API subset is targeted.
Signed-off-by: Martin Storsjö <martin@martin.st>
This fixes an issue where the tests directory is not created for out of tree
builds before its needed
Tested-by: Dave Yeo <daveryeo@telus.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f963f80399deb1a2b44c1bac3af7123e8a0c9e46':
arm: Use .data.rel.ro for const data with relocations
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This ensures that the CFLAGS and LDFLAGS are actually applied.
Fixes an incorrect change introduced with the clean-up in commit
cfcaf6b38e.
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Try to detect "$cc -static" without "pkg-config --static".
Also, when a library detection using pkg-config fails,
make it explicit this was pkg-config.
The require variant dies if the package is not present.
The check variant does not import the flags to the used list.
The new variant imports the flags if the package is present
but does not die if it is not.
The new call graph is: require -> use -> check.
Use use_pkg_config for libx264 and libsmbclient: more readable
and three external call less per library.
* commit '79fd186a5035cf16fc0ab288d8f59da8b1ba2c0e':
lavf: Use MoveFileEx instead of rename/_wrename on windows
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This allows getting the normal unix semantics, where a rename
allows replacing an existing file.
Based on a suggestion by Reimar Döffinger.
Signed-off-by: Martin Storsjö <martin@martin.st>
simd_align_16 is a configure item that can be enabled or disabled,
it's not a variable containing a list of other configure items
as need_memalign previously. This was broken in eba2233b5.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
This is mostly to serve as a reference example on how to segment
the output from the mp4 muxer, capable of writing the segment
list in four different ways:
- SegmentTemplate with SegmentTimeline
- SegmentTemplate with implicit segments
- SegmentList with individual files
- SegmentList with one single file per track, and byte ranges
The muxer is able to serve live content (with optional windowing)
or create a static segmented MPD.
In advanced cases, users will probably want to do the segmenting
in their own application code.
Signed-off-by: Martin Storsjö <martin@martin.st>
The emulation is unused and causes compilation trouble on systems
where fminf() is defined in <math.h> but missing from libm.
This should fix compilation on Debian powerpcspe.
Replace xcb_event by xcb, as the former is no more used and the latter
is needed on configurations where only xcb is available, and not
libxcb_shm and/or libxcb_xfixes.
Signed-off-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
__sync built-ins are considered legacy and will be deprecated.
These new memory model aware built-ins have been available since GCC 4.7.0
Use them by default when available except for __atomic_compare_exchange_n(),
which is slower, and is instead implemented as a fallback for when and if gcc
removes the legacy __sync built-ins.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
* commit '3f8f1c6ff24ee858eb5b0bf47ef6d4605299a87e':
lavu: Provide fallbacks for gmtime_r and localtime_r
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This allows writing most code as if they always are is available.
These are ok to use from other libraries even though it's not a
public header, since they only provide an inline declaration, and
doesn't add an actual dependency on lavu internals. (This can be
considered more a build system compatibility fallback than a
libavutil feature.)
Signed-off-by: Martin Storsjö <martin@martin.st>
This silences warnings about passing arguments from incompatible pointer type
when targeting Windows Vista or newer.
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
This silences warnings about passing arguments from incompatible pointer type
when targeting Windows Vista or newer.
Tested-by: Matt Oliver <protogonoi@gmail.com>
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
Some C libraries, eg glibc, uclibc, and musl, uses feature test macros
to expose definitions conforming to the standards ISO C, POSIX and
extensions. According to which feature test macros are defined by the
user or the compiler, a header file, eg <features.h>, used by these
libraries internally defines various other macros.
glibc and uclibc also defines release test macros, eg __GLIBC__ and
__UCLIBC__ in <features.h>. musl does not have (and does not want) a
macro __MUSL__. Therefore it is not possible to check for the musl
library.
However, building FFmpeg with musl needs the feature test macro
_XOPEN_SOURCE=600 to be defined.
Signed-off-by: Jörg Krause <jkrause@posteo.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '2d589273dd36c5eb271a035ea0e669b64dae257f':
configure: Split adding of CFLAGS and CPPFLAGS for hardened toolchain
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Use correct cpp and c flags variables for the host libc.
Signed-off-by: Jörg Krause <jkrause@posteo.de>
Reviewed-by: Benoit Fouet <benoit.fouet@free.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '1274ea8dbaec44355bde07f6bb31fec0c4e6fd2d':
Split off floating point AAN (I)DCT into separate components
Conflicts:
configure
libavcodec/Makefile
libavcodec/dct-test.c
libavcodec/idctdsp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f20518568a77a6138fc74021ce56013ab72907ba':
build: Split WMA frequencies into a separate object file
Conflicts:
configure
libavcodec/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ebef9f5a56d7df91e010a177a80cfc8dbe394305':
time: Use clock_gettime if the monotonic clock is available
Conflicts:
configure
The change to av_gettime() isnt merged, a patch will be posted to the mailing list
that would do the switch
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Required to add support for the aq_mode setting.
Any libvpx snapshot prior to 1.3.0 is not recommended for vp9 encoding for that matter.
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
This option facilitates testing shared libarary builds: for instance
fate builders do no longer need to set LD_LIBRARY_PATH as the binaries will
get the right search paths hardcoded into their executable file.
This option is only meant to be used for testing purposes: The installed
libraries must not move around in the file system, and doing so will
cause a lot of subtle problems. For more information why using RPATH is
dangerous, please refer to
https://blog.flameeyes.eu/2010/06/the-why-and-how-of-rpath
* commit '051aadeed104ecbe8ee4850ec2d7e5394f5e1ccd':
ogg: Provide aliases for Speex, Opus and audio-only ogg
Conflicts:
Changelog
libavformat/oggenc.c
libavformat/version.h
See: 2ccc6ff03a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The reasoning behind this addition is that various third party
applications are interested in getting some motion information out of a
video "for free" when it is available.
It was considered to export other information as well (such as the intra
information about the block, or the quantization) but the structure
might have ended up into a half full-generic, half full of codec
specific cruft. If more information is necessary, it should either be
added in the "flags" field of the AVMotionVector structure, or in
another side-data.
This commit also includes an example exporting them in a CSV stream.
this allows disabling and enabling it
it also prevents crashes if vfpv3 and neon are disabled which previously
would have enabled the flag
And last but not least one can enable setend on cpus like cortex-a8 where
its fast but disabled by default
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
On mingw64 with c++11 support, the link libraries do contain a
nanosleep function, while it isn't exposed via the headers. Using
check_func_headers instead of a plain check_func fixes this
misdetection.
Signed-off-by: Martin Storsjö <martin@martin.st>
On mingw64 with c++11 support, the link libraries do contain a
nanosleep function, while it isn't exposed via the headers. Using
check_func_headers instead of a plain check_func fixes this
misdetection.
Suggested-by: Hendrik Leppkes <h.leppkes@gmail.com>
See: [FFmpeg-devel] [PATCH] fix: 'make' with mingw32
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'ab0742d2f34d70415620441b7ed7da2f03a0c14f':
configure: Suggest upgrading gas-preprocessor instead of just installing
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The -MD option (for enabling a dynamically linked crt) gets interpreted
as a cpp option for generating dependency information (into a file named
'-.d', when preprocessing to a pipe). We shouldn't be passing
any and all C compiler flags to armasm (which is a plain assembler,
only with cpp bolted on via gas-preprocessor), but these are the
main conflicting ones.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '9f8cf50e3be04b8e178086edaa4598826143303d':
configure: Enable gas-preprocessor on all OSes but only if available
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f4312352fc52cc47c1ba398a33f629d32a737e91':
configure: Add probe identification of MS armasm
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '444c73583d2848a542330c03949e1f933ac68f53':
configure: Only run gas checks on ARM and PowerPC
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '0026e356d044e72b6e743b234708b8b8af457ac0':
configure: Die if gas is unavailable under aarch64 as well as ARM
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This removes the avcodec dependency and make the code almost twice as
fast. More to come.
The DCT factorization is based on "Fast and numerically stable
algorithms for discrete cosine transforms" from Gerlind Plonkaa &
Manfred Tasche (DOI: 10.1016/j.laa.2004.07.015).
* commit 'ed6d9ce914d552eeda16af857da97c4b1aea1e3f':
configure: Include the armcc build number in the compiler identification
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This tries to find the most expressive part of the output of
armcc --vsn to include, giving a compiler identification of
"ARM Compiler 5.04 update 2 (build 82)" instead of just
"ARM Compiler 5.04" for armcc 5.0.
4.x versions of armcc output the following, for "armcc --vsn":
ARM C/C++ Compiler, RVCT4.0 [Build 925]
For evaluation purposes only
Software supplied by: ARM Limited
ARM C/C++ Compiler, 4.1 [Build 894]
For evaluation purposes only
Software supplied by: ARM Limited
5.0 versions output this:
Product: ARM Compiler 5.04
Component: ARM Compiler 5.04 update 2 (build 82)
Tool: armcc [5040081]
For evaluation purposes only
Software supplied by: ARM Limited
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '15201e256035a3e8f9d3d7b96fc327467e1a8ead':
configure: check $as first before using $gas as GNU as
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
llvm's integrated assembler supports the AArch64 asm on darwin since
August 2014. So check $as first before using gas-preprocessor.pl via
$gas. Makes the checks specific for that the architecture specific asm
needs. PPC Altivec and AArch64 needs on ':vararg' for macro arguments.
Arm needs in addition the '.altmacro' directive.
Initialise VC1DSPContext for parser as well as for decoder.
Note, the VC-1 code doesn't actually use the function pointer yet.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* commit 'a0ce85ac7de098d3f9b53b51b77a09bad700a011':
configure: Globally add ZLIB_CONST to CPPFLAGS if zlib is enabled
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e4a462e3eafdfe336f4d079c3ba72a9cdb4748b0':
configure: Use require_pkg_config for Speex
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
pulse-simple is additional library built on top of PulseAudio.
It causes ffmpeg to link to library which is not needed anymore.
This commit removes that redundant dependency.
Signed-off-by: Lukasz Marek <lukasz.m.luki2@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Check for an instruction that causes the (very old) Apple GCC 4.2
to error out ("unrecognizable insn").
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit 'd45ebd4876ab8fc07736a644de07e1b1d11a8e5d':
configure: add support for neon intrinsics
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'bb0babd7054bed7edfd9f4d6b20cdba864de1830':
build: Support executable only ldflags
Conflicts:
Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b396bbad100a7493691d09b8dceba91e3cd28e2e':
configure: Do not add extralibs to avresample .pc file
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>