favor link over link.exe in case some wrapper script already exists
fallback to "link" in the path if the one next to cl is not found
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* commit 'a54e720e0289433d6bc3f7ba0a37fa5cabfaeea9':
configure: force -nologo- when detecting MSVC
Conflicts:
configure
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
The -nologo- option is the inverse of -nologo, reenabling printing the
"logo" version header. This is useful if the compiler actually is a
wrapper that forces -nologo.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit 'e1319aa1c1be9b64117c19170344fb78841dd67c':
libx264: Add support for the MPEG2 encoder
Conflicts:
configure
libavcodec/Makefile
libavcodec/libx264.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
Export symbols by name rather then ordinal.
Remove PROTMODE directive as it does not make sense for 32 bit library.
Also silences a warning from some linkers.
Signed-off-by: Dave Yeo <dave.r.yeo@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
With gcc-4.9.2 loongson faild in test fate-dca, this is caused by option
-fexpensive-optimizations in -O3 optimization. We disable it temporarily
before the bug been fixed up.
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
If it's not, then the new dependence-free parser will be used instead
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
Build system modified
There are several warnings occurring during build after this patch is
applied. The cause of most of these warnings is in that some definitions
needed here are logical part of sbr module and are added in later patches.
When this patches are applied these warnings stop occurring.
The only warning that is added here and is not fixed with later patches
is warning that warns that type mismatch for table ff_aac_eld_window_480.
The reason for this warning is in that ER AAC ELD 480 is not integrated in
to the fixed point implementation at this moment and there is no fixed point
version of this table.
Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'b08569a23948db107e5e6175cd4c695427d5339d':
lavf: Replace the ASF demuxer
Conflicts:
Changelog
libavformat/asf.h
libavformat/asfdec.c
libavformat/version.h
tests/ref/fate/wmv8-drm-nodec
tests/ref/seek/lavf-asf
The rewritten demuxer is placed in a new file, the current demuxer is
left as default. Carl has tested both and the one working better is
default.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Any other x265 symbol may not exported, e.g. if the build is a
multilib (10-bit and 8-bit in one) build.
This is the only symbol we directly call, and is available in the
build number we check for.
Fixes the configure check on multilib x265 builds.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Any other x265 symbol may not exported, e.g. if the build is a
multilib (10-bit and 8-bit in one) build.
This is the only symbol we directly call, and is available in the
build number we check for.
Fixes the configure check on multilib x265 builds.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This change introduces basic support for HEVC decoding through vdpau.
Right now, there are problems with the nvidia driver/library implementation
that mean that frames are incorrectly laid out in memory when they are
returned from the decoder, and it is normally impossible to recover the
complete decoded frame due to loss of data from alignment inconsistencies.
I obviously hope that nvidia will be fixing it in due course - I've verified
the problems exist with their example application.
As such, this support is not useful for any real world application, but I
believe that it is correct (with the caveat that the mangled frames may hide
problems) and will work properly once the nvidia problem is fixed.
Right now it appears that any file encoded by x265 or nvenc is decoded
correctly, but that's because these files don't use a bunch of HEVC
features.
Quick summary:
Features that seem to work:
1) Short Term References
2) Scaling Lists
3) Tiling
Features with known problems:
1) Long Term References
It's hard to tell what's going on here. After I read the nvidia example
app that does not set the IsLongTerm flag on LTRs, and changed my code,
a bunch of frames using LTR started to display correctly, but there
are still samples with glitches that are related to LTRs.
In terms of real world files, both x265 and nvenc only use short term
refs from this list. The divx encoder seems similar.
Signed-off-by: Philip Langdale <philipl@overt.org>
Cross-compile toolchains without support for ranlib -D would fail.
This fixes the configure script to test the cross ranlib rather than the native ranlib.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'c0b105756f61d253bdabcc2bb49453a2557e7c3b':
txd: Use the TextureDSP module for decoding
Conflicts:
configure
libavcodec/s3tc.c
libavcodec/s3tc.h
libavcodec/txd.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Using the internal DXTC routines brings support for non multiple of 4
textures. A new test is added to cover this feature. Hashes differ
since the decoding algorithm is different, though no visual changes
have been spotted.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
This module implements generic texture decompression from different
families (DXTC, RGTC, BCn) and texture compression DXTC 1, 3, and 5.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* commit '8655c54160767de1a6b96f8bc310d6e4eaceff48':
libvpx: Support the vp9 extended profiles
Conflicts:
Changelog
configure
libavcodec/libvpx.c
libavcodec/libvpx.h
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
libavcodec/version.h
mostly not merged, as requested by jamrial
See: 01e59d48ed
See: 079b7f6eac and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Bump the minimum libvpx version to 1.3.0 and rework the configure logic
to fail only if no decoders and encoders are found.
Based on the original patch from Vittorio.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
The current check is too strict for newer makeinfo versions.
Existing version strings are:
makeinfo (GNU texinfo) 4.13
makeinfo (GNU texinfo) 5.2
texi2any (GNU texinfo) 5.9.93
Probably version 6 will come in the not too far future.
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
This reverts commit 04f0002, which made it impossible to enable VSX with
a generic cpu.
This changes the behavior back to what it was before commit b0af404.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
The C runtime C99 compatibility had been improved a lot and it now
rejects some of the compatibility defines provided for the older
versions.
Many thanks to Ray for the time spent testing.
Bug-Id: 864
CC: libav-stable@libav.org
This allows us to offer the same codec name that libav uses. We don't have
a special way to do aliases, so it's all a bit more verbose than you'd want
but such is life.
Signed-off-by: Philip Langdale <philipl@overt.org>
For the sake of compatibility, and because pretty much everything else in the
codebase calls it HEVC.
Signed-off-by: Philip Langdale <philipl@overt.org>
They are inlined wrapper functions inside the time.h header on MinGW-w64, so
neither check_func() or check_func_headers() work with them.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
* commit 'e97446e600578392549ef6d0191f2020dae7f8bf':
configure: Check for DXVA2_ConfigPictureDecode instead of LPDIRECT3DSURFACE9
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '76eb0950b8d82b1e9617b9c854f091e13bb23131':
configure: Don't run "export $e" for an empty string
Conflicts:
configure
See: d5db4a7c23
Merged-by: Michael Niedermayer <michaelni@gmx.at>
These are only necessary once/if avconv gets support for this hwaccel.
While that obviously is desireable, we don't have it yet, and they
currently only are a distraction.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit 'fd11465b21ac90bf6964b0c0ca9d6ba64cd3291d':
configure: Use pkg-config for fdk-aac
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '604abd025dac4cc73a2f6b0c000c3695c16fb000':
configure: Provide an option to override the environment
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '06db45523c1068c24f049ef2b20fcdead3bf36d8':
configure: Support the extended pkgconf syntax
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The only need to be listed if they are to be used in ifdefs from
within the code - config items used as dependencies only within
configure don't need to be exported.
Signed-off-by: Martin Storsjö <martin@martin.st>
This fixes dxva2 detection (i.e. correctly realizes that it isn't
available) for WinRT, where dxva2api.h does exist, but these definitions
are omitted (when targeting the API subsets).
Ideally we should rather check for e.g. DXVA2_ConfigPictureDecode,
but configure might fail to find that definition due to _WIN32_WINNT
not being set to the right value during configure. (libavcodec/dxva2.h
manually overrides the _WIN32_WINNT define.)
This allows removing hardcoded --disable-dxva2 from such build
configurations.
Signed-off-by: Martin Storsjö <martin@martin.st>
mpz_import and mpz_export were added in GMP 4.1, in 2002.
This simplifies the DH code by clarifying that it only uses pure
bignum functions, no other parts of nettle/hogweed.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit 'b08caa87c35a768ec0abb16b1e99c3a85f1df28e':
nvenc: H264 and HEVC encoders
Conflicts:
Changelog
configure
libavcodec/Makefile
libavcodec/version.h
This implementation is merged under the name nvenc_b*
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'f22ebd2555d15b59e109a5b630dd71374b076d0b':
ppc: configure: Support ISA 2.06 and later
Conflicts:
configure
See: ab12373956 and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This fixes the default build on iOS; eventually I should come up with
a better solution for that platform.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This allows the user to override the directory for the installation
of the pkg-config files (from the default LIBDIR/pkgconfig).
It follows the usual behaviour of Makefiles generated by automake.
Signed-off-by: Ingo Brückl <ib@wupperonline.de>
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Move the OpenSSL and GnuTLS implementations to their own files. Other
than the connection code (including options) and some boilerplate, no
code is actually shared.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Move the OpenSSL and GnuTLS implementations to their own files. Other
than the connection code (including options) and some boilerplate, no
code is actually shared.
Signed-off-by: Martin Storsjö <martin@martin.st>
The libwebpmux pkg-config file already has an explicit dependecy on libwebp >= 0.2.0.
Also remove the warning and silently disable the anim encoder when libwebpmux is not new enough.
This is more in line with other library components, like libvpx-vp9
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
WebPAnimEncoder API is a combination of encoder (WebPEncoder) and muxer
(WebPMux). It performs several optimizations to make it more efficient
than the combination of WebPEncode() and native ffmpeg muxer.
When WebPAnimEncoder API is used:
- In the encoder layer: we use WebPAnimEncoderAdd() instead of
WebPEncode().
- The muxer layer: works like a raw muxer.
On the other hand, when WebPAnimEncoder API isn't available, the old code is
used as it is:
- In the codec layer: WebPEncode is used to encode each frame
- In the muxer layer: ffmpeg muxer is used
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
MIPSFPU optimization does't support FATE correctly on Loongson-3.
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Use the Multi-library interface to load at runtime x265 libraries
supporting alternative bit depths (e.g. 8bit and 16bit).
The linked library will try to load the library supporting the
pixel format if it is not supported by itself.
Fallback requesting the native library (passing 0 to x265_api_get) if
a library supporting the requested bit depth is not available.
Signed-off-by: Gopu Govindaswamy <gopu@multicorewareinc.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
1.Option -march=loongson3a conflicts with -mips64 or -mips64r2.
2.Option -mhard-float has been removed.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffmpeg can now use the x265 multi-library interface to make a runtime
selection between a number of libx265 libraries (perhaps 8bpp and 16bpp).
ffmpeg will link to one build of libx265 (statically or
dynamically) and this linked version of libx265 will support one
bit-depth (8 or 10 bits). At runtime, ffmpeg now has the option to request the
encoder to use a different bit depth(8 or 10). If the requested bitdepth
is zero, or if it matches the bitdepth of the system default libx265 (the
currently linked library), then this library will be used for encode.
If ffmpeg requests a different bit-depth, the linked libx265 will attempt
to dynamically bind a shared library with the requested bit-depth from the install
location (default or user-specified).
new x265 API:
const x265_api* api = x265_api_get(int bitDepth);
x265_api - holds the libx265 public API functions
bitDepth - requested API for 8bpp or 16bpp
note: Use 0 to indicate native bit depth of the linked libx265 and
x265_api_get(0) is guaranteed to return a non-null pointer
Signed-off-by: Gopu Govindaswamy <gopu@multicorewareinc.com>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
1.Loongson now have two series CPU supported MMI(Multi-Media Instruct).
Loongson-3 designed multi-core have good performance in decoding.
Loongson-2's support is comming soon.
2.Replaced loongson with loongson2 and loongson3.
Signed-off-by: ZhouXiaoyong <zhouxiaoyong@loongson.cn>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Remove PROTMODE as it doesn't make sense for DLLs. Also fixes a warning with the OpenWatcom linker
Export symbols as names rather then ordinals for better compatibility for minor releases.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit '863ee06809b215895ee20cbc557eeceb904cf770':
configure: Use the right local variable in the MSVC and ICL probes
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
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>