Commit Graph

4185 Commits

Author SHA1 Message Date
Derek Buitenhuis
e8ebcb0034 Merge commit 'a2bb771a3cded8a05137c0effb34f61a2bc78e22'
* commit 'a2bb771a3cded8a05137c0effb34f61a2bc78e22':
  configure: Restore the --enable-everything behaviour

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 15:39:35 +00:00
Derek Buitenhuis
3bff005be8 Merge commit '5e1beec944dacd6b4ed7d710125dd508c41ca969'
* commit '5e1beec944dacd6b4ed7d710125dd508c41ca969':
  configure: Print which libraries will be built

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 15:39:16 +00:00
Derek Buitenhuis
470bfab470 Merge commit '21c750f240b9d0c41a258d1adee2d9f75ff378b6'
* commit '21c750f240b9d0c41a258d1adee2d9f75ff378b6':
  configure: Use `require` for the non-component options

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 15:36:51 +00:00
Derek Buitenhuis
f97ee815cf Revert "configure: Revert recent changes to disable-everything"
Following merges make it work as before.

This reverts commit cefad29df9.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-17 15:36:50 +00:00
Derek Buitenhuis
c82d31808b Merge commit 'f7d77b9a5dd42bf0f5dffecf590466b4c4239437'
* commit 'f7d77b9a5dd42bf0f5dffecf590466b4c4239437':
  eatqi: Remove MpegEncContext dependency

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 19:41:55 +00:00
Derek Buitenhuis
1c417bad61 Merge commit '34c9eba982c75196392a3b0b245dd34297c4511d'
* commit '34c9eba982c75196392a3b0b245dd34297c4511d':
  configure: Refactor toolchain flag setting

Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-16 17:44:33 +00:00
Luca Barbato
2edc718723 configure: Relax the implication of --enable for components
Do not error out if some subcomponents cannot be enabled.

Reported-By: RT|AO
2016-02-15 17:57:43 +01:00
Anton Khirnov
21f7cd4acd lavfi: add a filter for uploading normal frames to CUDA 2016-02-14 22:25:38 +01:00
Anton Khirnov
c51b2c79a7 Allow linking to CUDA dynamically instead of dlopen()ing it at runtime 2016-02-14 22:08:13 +01:00
Luca Barbato
a2bb771a3c configure: Restore the --enable-everything behaviour
Make sure that the minimum set of dependencies needed by the tools
and the examples are enabled.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-14 11:44:57 +01:00
Luca Barbato
5e1beec944 configure: Print which libraries will be built
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-14 11:44:57 +01:00
Luca Barbato
21c750f240 configure: Use require for the non-component options
And make sure to enable all the components needed

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-14 11:44:57 +01:00
Philip Langdale
8d34a2f803 vdpau: Support for VDPAU accelerated HEVC decoding
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-13 14:42:38 +01:00
Vittorio Giovara
f7d77b9a5d eatqi: Remove MpegEncContext dependency
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-02-09 20:04:59 +01:00
Diego Biurrun
34c9eba982 configure: Refactor toolchain flag setting
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-09 20:02:31 +01:00
Anton Khirnov
dd53af4b37 avplay: drop support for building without lavfi
lavfi has been considered to be stable for a while now, so it is enabled
in most configurations. Supporting avplay without lavfi requires a lot
of nontrivial ifdef mess for no good reason.
2016-02-09 11:31:24 +01:00
Timothy Gu
cb8646af24 configure: Enable GCC vectorization on ≥4.9 on x86
4.9 was released precisely nine years after the first GCC version with
autovectorizer (4.0) and six years after the first GCC version with
`-ftree-vectorize` default to enabled on `-O3` (4.3). We've given GCC
enough time to fix those bugs.

FATE passes here on a x86-64 machine with both GCC 4.9.2 and 5.3.1.

Some optimization hotspots benefit greatly from this change, especially
those without handwritten assembly. For instance, the main function in
vf_phase is now 1.6x faster (1.2x overall) on my machine.
2016-02-08 16:25:44 -08:00
Andreas Cadhalpun
e740c3fb90 configure: fall back to using full path if src is a directory
Or when building in-tree.
Also don't try to remove src on distclean in these cases.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-02-06 15:30:25 +01:00
Henrik Gramner
389b79842c msvc: Fix libx264 linking
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-02-06 13:56:39 +01:00
Luca Barbato
a38a4f44b5 configure: Support MSYS2 mingw-w64 64bit 2016-02-06 12:07:47 +01:00
Paul B Mahol
79991b2288 avfilter: add nnedi filter
Port of nnedi3 vapoursynth filter.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-02-01 13:16:15 +01:00
Stephen Hutchinson
70742e599b libx265: Enable 12-bit encoding
The configure detection is bumped to X265_BUILD >= 68,
since API version 68 corresponds with the x265 1.8
release tarball. The warnings inside x265 about
12-bit being experimental were removed prior to API
version 72 a short time later.  At this time of
writing, X265_BUILD is at version 80.

12-bit support in the HEVC standard was approved in
October 2014 as part of HEVC Version 2 and published
in January 2015:

http://www.itu.int/ITU-T/recommendations/rec.aspx?rec=12296
http://www.itu.int/rec/T-REC-H.265-201410-S
https://hevc.hhi.fraunhofer.de/rext

Reveiwed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-02-01 01:36:44 +01:00
Henrik Gramner
58313f2dda msvc: Fix libx264 linking 2016-01-31 22:13:17 +01:00
foo86
ae5b2c5250 avcodec/dca: add new decoder based on libdcadec 2016-01-31 17:09:38 +01:00
foo86
4608996772 avcodec/dca: remove old decoder
Remove all files and functions which are not going to be reused,
and disable all functions and FATE tests temporarily which will be.
2016-01-31 17:09:38 +01:00
Kieran Kunhya
e07e88cd82 avcodec: Remove libvo-aacenc support.
The internal encoder is superior to libvo-aacenc.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
2016-01-29 17:26:42 -08:00
Timothy Gu
9ba54c1b82 avcodec: Remove libaacplus
TODO: bump minor

It's inferior in quality to fdk-aac and has an arguably more problematic
license.

As early as 2012, a HydrogenAudio user reported:

> It has however one huge advantage: much better quality at low bitrates than
> faac and libaacplus.

(https://hydrogenaud.io/index.php?PHPSESSID=ckiq394pdglka0kj2fin6ij8t7&topic=95989.msg804633#msg804633)

I myself have made a few spectrograms for a comparison of the two
encoders as well. The FDK output is consistently better than the
libaacplus one, in all bitrates I tested.

libaacplus license is 3GPP + LGPLv2. 3GPP copyright notice is completely
proprietory, as follows:

> No part may be reproduced except as authorized by written permission.
>
> The copyright and the foregoing restriction extend to reproduction in
> all media.
>
> © 2008, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC).
>
> All rights reserved.

(The latest 26410-d00 zip from 3GPP has the same notice, but the copyright
year is changed to 2015)

The copyright part of the FDK AAC license (section 2) is a copyleft
license that permits redistribution under certain conditions (and
therefore the LGPL + libfdk-aac combination is not prohibited by
configure):

> Redistribution and use in source and binary forms, with or without
> modification, are permitted without payment of copyright license fees
> provided that you satisfy the following conditions:
>
> You must retain the complete text of this software license in
> redistributions of the FDK AAC Codec or your modifications thereto in
> source code form.
>
> You must retain the complete text of this software license in the
> documentation and/or other materials provided with redistributions of
> the FDK AAC Codec or your modifications thereto in binary form.
>
> You must make available free of charge copies of the complete source
> code of the FDK AAC Codec and your modifications thereto to recipients
> of copies in binary form.
>
> The name of Fraunhofer may not be used to endorse or promote products
> derived from this library without prior written permission.
>
> You may not charge copyright license fees for anyone to use, copy or
> distribute the FDK AAC Codec software or your modifications thereto.
>
> Your modified versions of the FDK AAC Codec must carry prominent
> notices stating that you changed the software and the date of any
> change. For modified versions of the FDK AAC Codec, the term
> "Fraunhofer FDK AAC Codec Library for Android" must be replaced by the
> term "Third-Party Modified Version of the Fraunhofer FDK AAC Codec
> Library for Android."
2016-01-29 17:14:37 -08:00
Marton Balint
6bc610b39e configure: remove libzvbi GPL dependency
The COPYING.LIB file in the zvbi source tree as well as libzvbi.h references
the GNU Library General Public License version 2 since version 0.2.28.

Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-29 01:42:17 +01:00
Marton Balint
98e94dff7a configure: use -ldl for decklink
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-01-29 01:41:54 +01:00
wm4
14a90c9ef0 mmaldec: limit internal buffering
This uses a new MMAL feature, which limits the number of extra frames
that can be buffered within the decoder. VIDEO_MAX_NUM_CALLBACKS can
be defined as positive or negative number. Positive numbers are
absolute, and can lead to deadlocks if the user underestimates the
number of required buffers. Negative numbers specify the number of extra
buffers, e.g. -1 means no extra buffer, (-1-N) means N extra buffers.

Set a gratuitous default of -11 (N=10). This is much lower than the
firmware default, which appears to be 96.

This is backwards compatible, but needs a symbol only present in newer
firmware headers. (It's an enum item, so it requires a check in
configure.)
2016-01-28 17:24:53 +01:00
wm4
7b1b53f3a4 mmaldec: support MPEG-4
I guess this means part 2 in both cases. Not sure which profiles exactly
are actually supported properly.
2016-01-28 17:24:40 +01:00
wm4
0badf4564a configure: fix mmal build dependencies
The mmal decoders do not depend on the software decoders.
2016-01-28 17:23:23 +01:00
James Almer
77a44f577b configure: add missing avx2 support check
AVX2 support was introduced in Yasm 1.2.0 and NASM 2.10, and the
oldest versions currently supported are Yasm 0.8.0 and NASM 2.03

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-28 00:43:23 +01:00
James Almer
09d5c28c3d configure: fix openssl pkg-config check
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-27 17:56:35 -03:00
Derek Buitenhuis
cefad29df9 configure: Revert recent changes to disable-everything
These will be re-merged once it's been fixed properly.

This reverts:
 * Commit '8e7bea6dc6ac5b21484774a026847bec0771ab62'
   configure: Improve requesting specific features
 * Commit 'e93aa2c9e7b3599aee6a5820760fc1a2c629dea0'
   configure: Force-enable select_any dependencies only on --enable

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 20:32:12 +00:00
Derek Buitenhuis
3662e55943 Merge commit 'e93aa2c9e7b3599aee6a5820760fc1a2c629dea0'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:52:48 +00:00
Derek Buitenhuis
3de3937ecd Merge commit '8e7bea6dc6ac5b21484774a026847bec0771ab62'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:48:09 +00:00
Derek Buitenhuis
f97d2d2105 Merge commit 'e59708bb9d94f67381f19344b5e021591eb711bf'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:33:32 +00:00
Derek Buitenhuis
bd7da0ae7b Merge commit '8fd361f53b3c17c1ae13a39e030c8fa3ab4d8f1f'
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-27 19:30:08 +00:00
Andreas Cadhalpun
38622007c4 vf_libopencv: add support for opencv 3
It dropped the old headers, but the replacements are already available
with opencv 2.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-25 23:49:22 +01:00
Andreas Cadhalpun
b46aae0936 build: use a link instead of changing current directory when compiling
If links don't work, fall back to using the full source path as was
previously done.

This should fix build failures with MSVC.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-25 20:43:34 +01:00
James Almer
1d8f9b7d1a avcodec/webp: fix decoder dependencies
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-24 20:30:33 -03:00
Timothy Gu
fe71fde246 configure: Maintain alphabetical order of components
This is not "pure" alphabetical order since some components are
intentionally kept together.
2016-01-24 09:43:48 -08:00
Kieran Kunhya
2d40a09b6e avformat: Remove support for libquvi
libquvi has not been updated since 2013.
It also has a number of security issues.
2016-01-24 16:01:04 +00:00
Charlie Arnold
22ee0a576f build: fix msvc build
Fix configure to set DST_PATH to the Windows style path when building with MSVC

Fixes ticket #5180.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-23 22:22:04 +01:00
Luca Barbato
c0c4d7a0a5 configure: Correctly add openssl cflags and libs 2016-01-23 14:34:06 +01:00
Andreas Cadhalpun
064963bd27 build: make out-of-tree builds bit-identical to in-tree builds
Previously the full source path was embedded inconsistently in the debug
information between in-tree/out-of-tree builds.

The 'vpath %.inc' becomes necessary for finding
libavfilter/all_channel_layouts.inc in out-of-tree builds.

The full source path is still embedded in the debug information, but
it's now independent of whether building in-tree or out-of-tree.

The biggest improvement of this patch is that gdb now always searches
for the path relative to the source directory. It still also searches
for the full path.
Previously it searched only for the full path in out-of-tree builds,
making the debug information generated by Debian's buildds rather hard
to use.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2016-01-22 00:30:59 +01:00
Luca Barbato
e93aa2c9e7 configure: Force-enable select_any dependencies only on --enable
Unbreak --enable-gnutls enabling tls_openssl_protocol

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-21 21:24:33 +01:00
Paul B Mahol
fa04ec728d avfilter: add afftfilter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-21 14:31:38 +01:00
James Almer
8bbb972350 configure: add missing library deps for showcqt_filter
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-21 00:49:02 -03:00
Luca Barbato
8e7bea6dc6 configure: Improve requesting specific features
Before this patch trying to enable only https by issuing

    --disable-protocols --enable-protocol=https --enable-gnutls

does not enable https, and

    --disable-all --enable-protocols

does not enable libavformat and the protocols component.

Now the default-enabled options are set after the explicitly
disabled/enabled options are evaluated.

If an explicitly enabled option cannot be enabled configure
will fail printing an error message.
2016-01-21 01:04:24 +01:00
Arttu Ylä-Outinen
7d1e985528 libkvazaar: Set frame rate as a rational number
Updates libkvazaar to pass the exact frame rate to Kvazaar by setting
the numerator and denominator separately instead of a single floating
point number. The exact frame rate is needed for writing timing info to
the bitstream.

Requires Kvazaar version 0.8.1.

Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
2016-01-20 17:29:13 +02:00
Luca Barbato
e59708bb9d configure: mips: Support both-endian compilers
Use mips{,64}eb to force big endian and mips{,64}el to force little
endian.
2016-01-19 20:47:49 +01:00
Luca Barbato
8fd361f53b configure: Use pkg-config to check for openssl 2016-01-19 20:47:49 +01:00
Arttu Ylä-Outinen
472d488ebc libkvazaar: Set frame rate as a rational number
Updates libkvazaar to pass the exact frame rate to Kvazaar by setting
the numerator and denominator separately instead of a single floating
point number. The exact frame rate is needed for writing timing info to
the bitstream.

Requires Kvazaar version 0.8.1.

Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-01-19 20:47:49 +01:00
Hendrik Leppkes
e816fe7401 Merge commit '7570c9e04f010c9b3bfdeb4338d330f2cdd25278'
* commit '7570c9e04f010c9b3bfdeb4338d330f2cdd25278':
  swfdec: support compressed swf

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-01-19 08:58:55 +01:00
James Almer
c1a3683f26 configure: disable -Wunused-const-variable
The option became too aggressive with GCC 6, generating nearly 500
warnings from static const variables defined in assorted headers

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-18 20:16:55 -03:00
Carl Eugen Hoyos
1f12a889da configure: The XMA decoders depend on wmapro.
Fixes compilation with --disable-fft.
2016-01-17 18:37:01 +01:00
Paul B Mahol
653f9d84ae avfilter: add spectrumsynth filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-14 20:51:20 +01:00
Ganesh Ajjanagadde
a0a47a09b0 lavu/libm: add isfinite fallback
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2016-01-13 20:00:19 -05:00
Paul B Mahol
57e4571679 configure: showspectrum now uses fft, add showspectrumpic
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2016-01-12 22:36:34 +01:00
Anton Khirnov
ee359c72ef nvenc: rename encoders
Change 'nvenc_<codec>' to '<codec>_nvenc', which is consistent with
other similar decoders and encoders (QSV, MMAL).
2016-01-12 09:23:34 +01:00
Clément Bœsch
7570c9e04f swfdec: support compressed swf
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-01-11 15:32:56 -05:00
Ricardo Constantino
be0f005da6 configure: Use libgcrypt-config's cflags
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-08 21:00:18 -03:00
Ricardo Constantino
e990d746d0 configure: Use libgcrypt-config if available
Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-08 20:36:48 +01:00
James Almer
08339cdb6c configure: remove unused bulitin check
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-07 20:11:00 -03:00
Clément Bœsch
2ce29d1765 lavu: add ff_parity() 2016-01-07 22:51:31 +01:00
Michael Niedermayer
23679d82f6 configure: use warn() for mips unknown cpu warning
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-06 22:15:14 +01:00
Vicente Olivert Riera
6282bdc2bf mips: display a warning message when using an unknown CPU
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-01-06 19:41:38 +01:00
Derek Buitenhuis
72673ad7ea avcodec: Remove libstagefright
It serves absolutely no purpose other than to confuse potentional
Android developers about how to use hardware acceleration properly
on the the platform. The stagefright "API" is not public, and the
MediaCodec API is the proper way to do this.

Furthermore, stagefright support in avcodec needs a series of
magic incantations and version-specific stuff, such that
using it actually provides downsides compared just using the actual
Android frameworks properly, in that it is a lot more work and confusion
to get it even running. It also leads to a lot of misinformation, like
these sorts of comments (in [1]) that are absolutely incorrect.

[1] http://stackoverflow.com/a/29362353/3115956

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-01-06 16:43:06 +00:00
James Almer
78129978f0 configure: bump copyright year to 2016
Signed-off-by: James Almer <jamrial@gmail.com>
2016-01-02 16:28:31 -03:00
yukari yakumo
f87e29a615 configure: support --cpu=host and Clang
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-30 23:14:31 +01:00
Vicente Olivert Riera
dde994751b mips: put "disable mipsfpu" in a better place for loongson
Let's disable the ISAs first, and then the core capabilities, as we do
for the rest of the cores. This way the code is better organized.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-30 20:21:57 +01:00
Vicente Olivert Riera
6a7e94cb14 mips: add mips32r6 architecture variant
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-30 20:21:45 +01:00
Ganesh Ajjanagadde
29bc293297 configure: make gcc 2 detection more robust
Solves an issue that will get triggered when gcc 20 rolls in.

Found-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-30 08:45:02 -08:00
Ganesh Ajjanagadde
63702014fa lavfi/af_anequalizer: remove cabs, cexp dependencies
Replaces by real arithmetic. Tested the validity of these transformations separately.
Numerical differences are ~1e-15, and should not matter: it is not even
clear which is more precise mathematically.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-28 16:47:23 -08:00
Ganesh Ajjanagadde
73616b1f21 lavu/libm,configure: remove exp10, exp10f detection
Subsequent commit introduces ff_exp10 instead.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-25 10:12:49 -08:00
Paul B Mahol
56c7d2b4da avfilter: add high-order parametric multiband equalizer filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-25 14:22:28 +01:00
Michael Bradshaw
99eabcdd5f avcodec: add OpenJPEG 2.x compatibility
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-25 10:55:34 +01:00
Ganesh Ajjanagadde
e29db08cf7 lavu/libm: add exp10 support
exp10 is a function available in GNU libm. Looks like no other common
libm has it. This adds support for it to FFmpeg.

There are essentially 2 ways of handling the fallback:
1. Using pow(10, x)
2. Using exp2(M_LOG2_10 * x).

First one represents a Pareto improvement, with no speed or accuracy
regression anywhere, but speed improvement limited to GNU libm.

Second one represents a slight accuracy loss (relative error ~ 1e-13)
for non GNU libm. Speedup of > 2x is obtained on non GNU libm platforms,
~30% on GNU libm. These are "average case numbers", another benefit is
the lack of triggering of the well-known terrible worst case paths
through pow.

Based on reviews, second one chosen. Comment added accordingly.

Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-23 09:22:59 -08:00
Ganesh Ajjanagadde
520a5d33f0 lavfi/af_aemphasis: remove unnecessary complex number usage
complex is not available on all platforms. Furthermore, it is trivial to
rewrite complex number expressions to real arithmetic, and in fact
sometimes advantageous for performance reasons: by wrapping as a complex,
one forces a particular Cartesian representation that is not necessarily optimal for the purpose.

Configure dependencies also removed, and aemphasis is now available across
all platforms.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-23 09:22:59 -08:00
Timo Rothenpieler
d7c2b75681 vaapi: Add VP9 hwaccell support
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-12-22 12:54:23 +01:00
Ganesh Ajjanagadde
dd68cde28a lavu/libm: add erf hack and make dynaudnorm available everywhere
Source code is from Boost:
http://www.boost.org/doc/libs/1_46_1/boost/math/special_functions/erf.hpp
with appropriate modifications for FFmpeg.

Tested on interval -6 to 6 (beyond which it saturates), +/-NAN, +/-INFINITY
under -fsanitize=undefined on clang to test for possible undefined behavior.

This function turns out to actually be essentially as accurate and faster than the
libm (GNU/BSD's/Mac OS X), and I can think of 3 reasons why upstream
does not use this:
1. They are not aware of it.
2. They are concerned about licensing - this applies especially to GNU
libm.
3. They do not know and/or appreciate the benefits of rational
approximations over polynomial approximations. Boost uses them to great
effect, see e.g swr/resample for bessel derived from them, which is also
similarly superior to libm variants.

First, performance.
sample benchmark (clang -O3, Haswell, GNU/Linux):

3e8 values evenly spaced from 0 to 6
time (libm):
./test  13.39s user 0.00s system 100% cpu 13.376 total
time (boost based):
./test  9.20s user 0.00s system 100% cpu 9.190 total

Second, accuracy.
1e8 eval pts from 0 to 6
maxdiff (absolute): 2.2204460492503131e-16
occuring at point where libm erf is correctly rounded, this is not.

Illustration of superior rounding of this function:
arg   : 0.83999999999999997
erf   : 0.76514271145499457
boost : 0.76514271145499446
real  : 0.76514271145499446

i.e libm is actually incorrectly rounded. Note that this is clear from:
https://github.com/JuliaLang/openlibm/blob/master/src/s_erf.c (the Sun
implementation used by both BSD and GNU libm's), where only 1 ulp is
guaranteed.

Reasons it is not easy/worthwhile to create a "correctly rounded"
variant of this function (i.e 0.5ulp):
1. Upstream libm's don't do it anyway, so we can't guarantee this unless
we force this implementation on all platforms. This is not easy, as the
linker would complain unless measures are taken.
2. Nothing in FFmpeg cares or can care about such things, due to the
above and FFmpeg's nature.
3. Creating a correctly rounded function will in practice need some use of long
double/fma. long double, although C89/C90, unfortunately has problems on
ppc. This needs fixing of toolchain flags/configure. In any case this
will be slower for miniscule gain.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-21 09:03:11 -08:00
Ganesh Ajjanagadde
062e3e2382 lavu/libm: add copysign hack
For systems with broken libms.
Tested with NAN, -NAN, INFINITY, -INFINITY, +/-x for regular double x and
combinations of these.

Old versions of MSVC need some UINT64_C hackery.

Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-19 14:05:49 -08:00
Ganesh Ajjanagadde
39f8c7961d lavu/random_seed: use arc4random() when available
arc4random() was designed as a superior interface for system random
number generation, designed for OpenBSD and subsequently incorporated by
other BSD's, Mac OS X, and some non-standard libc's. It is thus an improvement to
use it whenever available.

As a side note, this may or may not get included in glibc, and there is
a proposal to create a posix_random family based on these ideas:
http://austingroupbugs.net/view.php?id=859.

Tested on Mac OS X.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-17 08:12:41 -08:00
Hendrik Leppkes
efcc8fddd6 Merge commit 'e02de9df4b218bd6e1e927b67fd4075741545688'
* commit 'e02de9df4b218bd6e1e927b67fd4075741545688':
  lavc: export Dirac parsing API used by the ogg demuxer as public

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-17 14:48:46 +01:00
Vicente Olivert Riera
a2f2abc889 mips: add mips64r2 architecture variant
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-16 14:03:57 +01:00
Vicente Olivert Riera
e8bc43fe47 mips: i6400 core is not mips32r2, so disable mips32r2
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-16 14:03:57 +01:00
Paul B Mahol
e8586ecb86 configure: add conditional library dependency for sofalizer and showfreqs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-14 22:41:52 +01:00
Paul B Mahol
2f12172d67 avfilter/af_sofalizer: add frequency domain processing and use it by default
Code ported from SOFAlizer patch for VLC.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-14 21:58:08 +01:00
Paul B Mahol
0a19538bcf avfilter: add SOFAlizer audio filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-12 20:56:36 +01:00
Vicente Olivert Riera
69e80d6ce4 mips: i6400 core does have an FPU, so not disable it
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 19:47:17 +01:00
Vicente Olivert Riera
88d66f691a mips: add i6400 core optimizations
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 19:47:11 +01:00
Vicente Olivert Riera
1dcd96f72f mips: remove --mips64r6 configure option
Having a configure option with the same name as a MIPS ISA is confusing,
so better to remove it. This option was being used to add some
optimizations to a specific core (i6400). We will add the optimizations
just when the i6400 core has been detected, in a later patch.

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-12 19:47:06 +01:00
James Almer
a0050d9bf9 configure: fix vp9_d3d11va_hwaccel deps
Signed-off-by: James Almer <jamrial@gmail.com>
2015-12-07 13:12:21 -03:00
Hendrik Leppkes
357c62657a Merge commit 'cb49bb10ca7fcff2e382d9d989232b1a7f28e7da'
* commit 'cb49bb10ca7fcff2e382d9d989232b1a7f28e7da':
  build: Move -Wcast-qual to the extra_warnings

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 16:01:41 +01:00
Hendrik Leppkes
1e6cf7272f avcodec: implement vp9 dxva2 hwaccel 2015-12-07 09:38:59 +01:00
Anton Khirnov
e02de9df4b lavc: export Dirac parsing API used by the ogg demuxer as public
Also, stop using AVCodecContext for storing the stream parameters.
2015-12-06 10:28:04 +01:00
Hendrik Leppkes
3b0f63e110 Merge commit '9f57f134c19773d54269b6cb9ee455ff87c2e9e1'
* commit '9f57f134c19773d54269b6cb9ee455ff87c2e9e1':
  configure: ObjC support

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-05 12:21:33 +01:00
Vicente Olivert Riera
1a538a1490 mips: add p5600 core optimizations
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-04 20:51:01 +01:00