1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-08 13:22:53 +02:00
Commit Graph

2802 Commits

Author SHA1 Message Date
Diego Biurrun
1818a640cf build: Fix dependencies for alsa/jack/sndio support
These components should depend on the availability of the respective
libraries, not just on the availability of the respective headers.
2016-12-09 08:42:34 +01:00
Diego Biurrun
af451ac0de configure: Drop redundant and partly bogus vaapi/vdpau header checks
These are taken care of more correctly by the library checks.
2016-12-09 08:42:08 +01:00
Diego Biurrun
892acc7010 configure: Fail if cuda was enabled and is not available
This is the standard behavior for external libraries.
2016-12-08 20:12:24 +01:00
Diego Biurrun
f55c0a64ae build: Drop stray golomb dependencies 2016-12-08 20:12:24 +01:00
Diego Biurrun
fbec58daa2 build: Add an internal component for hevc_ps code
This allows expressing dependencies in a more correct way.
2016-12-08 20:12:23 +01:00
Diego Biurrun
6bd9590b33 build: Have old H.264/HEVC nvenc encoders select their new counterparts
This makes sense and takes care of missing build dependencies.
2016-12-07 12:13:23 +01:00
Wan-Teh Chang
f22da2cdf9 configure: add -fPIE instead of -pie to C flags for ThreadSanitizer
-pie was added to C flags for ThreadSanitizer in commit
19f251a288. Under clang 3.8.0, the -pie
flag causes a compiler warning and a linker error when running configure
--toolchain=clang-tsan. Here is an excerpt from config.log:

clang ... -fsanitize=thread -pie -std=c11 -fomit-frame-pointer -pthread -c -o /tmp/ffconf.A8SsaoCF.o /tmp/ffconf.JdpujQlD.c
clang: warning: argument unused during compilation: '-pie'
clang -fsanitize=thread -pie -Wl,--as-needed -o /tmp/ffconf.2iYA4bsw /tmp/ffconf.A8SsaoCF.o -lm -lm -lbz2 -lz -pthread
/usr/bin/ld: /tmp/ffconf.A8SsaoCF.o: relocation R_X86_64_PC32 against undefined symbol `atan2f@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)

To be conservative, I changed -pie to -fPIE. But the documentation seems
to imply just -fsanitize=thread is enough:

http://clang.llvm.org/docs/ThreadSanitizer.html
https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual

Signed-off-by: Wan-Teh Chang <wtc@google.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-12-06 20:34:25 +01:00
Diego Biurrun
404cb74793 configure: Pass CFLAGS_HEADERS through the right CFLAGS filter
The generic parameter names used for CFLAGS in configure must be filtered
for each compiler and replaced by the equivalent flag for that compiler.
2016-12-06 17:49:05 +01:00
Diego Biurrun
9265364bec build: Separate avisynth and avxsynth support
This simplifies the code.
2016-12-06 17:49:05 +01:00
Diego Biurrun
3d6135eacf configure: Simplify OMX check 2016-12-06 08:33:08 +01:00
Diego Biurrun
601f8dde13 configure: Move COMPONENT_LIST to the bottom of CONFIG_LIST
This ensures that dependencies are resolved correctly. COMPONENT_LIST
can contain parts that depend on previous entries of CONFIG_LIST.
2016-12-06 08:33:07 +01:00
Diego Biurrun
29d2e03ed9 configure: Simplify and fix avfoundation indev handling
Handle extralibs in the standard way, add missing pthreads dependency.
Also globally check for -fobj-arc with Objective-C compilers since
that option is useful for other Objective-C code as well.
2016-12-05 18:07:24 +01:00
Diego Biurrun
2a09644076 configure: Separate package name and version requirements in helper functions
The unadorned package name is needed to derive package-related variable names.
2016-12-05 16:37:55 +01:00
Diego Biurrun
ffb9025f39 configure: Simplify MMAL check 2016-12-05 16:15:40 +01:00
Diego Biurrun
660470cd62 build: Add missing audio_frame_queue dependency for libwavpack encoder 2016-12-05 16:13:05 +01:00
Diego Biurrun
e1dc5358af build: Create a component for MPEG audio header decoding
Fixes standalone compilation of the libmp3lame encoder.
2016-12-05 16:13:05 +01:00
Diego Biurrun
6ef3360a38 configure: Add misssing qpeldsp dependency to mss2 decoder 2016-12-03 14:06:36 +01:00
Diego Biurrun
14bba44fb2 build: Drop support for configuring library name suffixes
It is of doubtful utility, adds complexity and no known users exist.
2016-12-03 09:15:01 +01:00
Diego Biurrun
1ea77aae92 configure: Drop bogus xcb_event variables 2016-12-03 09:15:01 +01:00
Diego Biurrun
3794062ab1 Remove Plan 9 support
Supporting the system was a nice joke for the 9 release, but it has
run its course. Nowadays Plan 9 receives no testing and has no
practical usefulness.
2016-12-03 09:15:01 +01:00
Diego Biurrun
4a1ef54398 build: Drop support for old versions of libdc1394
The libdc1394 API transition was finished close to a decade ago.
2016-12-03 09:15:01 +01:00
Diego Biurrun
2575b1917b build: Add separate flags for checkheaders targets
This allows filtering out some warning noise.
2016-12-03 08:00:33 +01:00
Diego Biurrun
984e50e74b build: Add -Wpedantic and -Wextra to extra warning flags
Also drop -Winline from set of warning flags as it only produces noise.
2016-12-03 08:00:33 +01:00
Luca Barbato
518a22471e configure: Be more helpful when requiring options set
Be explicit about which options should be set.
2016-12-02 12:00:07 -05:00
Diego Biurrun
c21d78a903 configure: Integrate X11 checks into vaapi/vdpau checks 2016-11-29 19:14:07 +01:00
Diego Biurrun
8b56dbe743 configure: Do not add newlines in filter()/filter_out() functions 2016-11-29 18:43:05 +01:00
Diego Biurrun
9254344e11 configure: Move hardware-accelerated codec deps out of hwaccel section 2016-11-29 15:10:58 +01:00
Diego Biurrun
d4f2a681cb configure: MMAL-related decoders should depend on, not select, mmal 2016-11-29 15:10:58 +01:00
Diego Biurrun
e122b12c88 build: Drop gcrypt support
GnuTLS in combination with gcrypt has been deprecated since 2010.
2016-11-25 18:46:53 +01:00
Diego Biurrun
bf2f748fc7 configure: Use correct libm linker flag during math function checks 2016-11-25 18:46:52 +01:00
Diego Biurrun
ce6f780bc6 configure: Add missing asyncts filter, movie filter, and output example deps
Also add a missing avcodec.h #include in the movie filter.
2016-11-25 18:45:27 +01:00
Diego Biurrun
04698d528c configure: Use correct variable name in libsnappy test 2016-11-25 16:44:57 +01:00
Diego Biurrun
30f0d1b997 configure: Remove old avisynth support leftover 2016-11-25 16:44:56 +01:00
Diego Biurrun
5bcc6f76f1 configure: Disable warning C4703 with MSVC
This disables warnings about potentially uninitialized local pointer
variables.  Disabling the warning is in line with what we do for gcc.
2016-11-24 16:14:33 +01:00
Anton Khirnov
1dd2b6c91c examples/qsvdec: switch to the hwcontext API
The code now does not depend on VA and will work on windows as well.
2016-11-23 13:08:33 +01:00
Diego Biurrun
ffe89e1edb configure: Move mjpeg_vaapi_decoder dependency declarations to the right place 2016-11-16 08:21:05 +01:00
Mark Thompson
e0b164576f qsv: Add VP8 decoder 2016-11-14 19:38:20 +00:00
Mark Thompson
b6582b2927 qsv: Add VC-1 decoder
It uses the same code as the MPEG-2 decoder, so the file is renamed
to contain all "other" (that is, not H.26[45]) codecs.
2016-11-14 19:38:19 +00:00
Diego Biurrun
12db2832e4 libxvid: Require availability of mkstemp()
The replacement code uses tempnam(), which is dangerous.
Such a fringe feature is not worth the trouble.
2016-11-11 10:17:07 +01:00
Diego Biurrun
2dd464868c configure: Move license checks directly after command line parsing
This will allow to error out immediately if incompatible options are
passed on the command line instead of running time-consuming tests.
2016-11-09 20:51:56 +01:00
Diego Biurrun
c78495d1cd configure: Log name and parameters of all helper functions where it makes sense 2016-11-09 20:51:56 +01:00
Diego Biurrun
8a6e7a67cb configure: Use check_cpp in CPP flags tests 2016-11-09 20:51:56 +01:00
Diego Biurrun
831005b230 configure: Log correct test name and use correct filter when testing objective C flags 2016-11-09 20:51:56 +01:00
Diego Biurrun
fe7bc1f16a configure: Do not unconditionally check for (and enable) xlib
This avoids unnecessarily linking against xlib.
2016-11-09 20:51:55 +01:00
Diego Biurrun
d1a91ebe49 configure: Print list of enabled programs
Also drop a related and now redundant informative output line.
2016-11-09 20:51:55 +01:00
Diego Biurrun
576c9003ae configure: Improve output wording
Also drop a redundant output line.
2016-11-09 20:51:55 +01:00
Diego Biurrun
59d2b00d20 configure: Add --quiet command line parameter to suppress informative output 2016-11-08 17:32:57 +01:00
Martin Storsjö
d1ef1b9eaa configure: Silence lld-link when getting the version number
In recent lld-link versions, this command prints the version to
stdout, but also prints an error to stderr:

$ lld-link -flavor gnu --version
LLD 4.0.0 (trunk 285641)
lld-link: error: no input files
lld-link: error: target emulation unknown: -m or at least one .o file required

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-11-04 21:37:57 +02:00
Anton Khirnov
7b1f03477f examples/avcodec: split the remaining two examples into separate files 2016-11-02 10:16:04 +01:00
Anton Khirnov
f5df897c4b examples/avcodec: split audio decoding into a separate example
The four examples (audio/video encoding/decoding) are completely
independent so it makes little sense to have them all in one file.
2016-11-02 10:13:27 +01:00
Anton Khirnov
40aaa8dadf examples/avcodec: split audio encoding into a separate example
The four examples (audio/video encoding/decoding) are completely
independent so it makes little sense to have them all in one file.
2016-11-02 10:11:46 +01:00
Luca Barbato
dad7514f9e xcb: Add all the libraries to the link line explicitly
Avoid an underlink issue on recent distributions.

CC: libav-stable@libav.org
2016-10-30 21:55:03 +01:00
Matt Oliver
ee05079766 openssl: Support version 1.1.0.
Further simplifications by Martin Storsjö, to minimize the
diff.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-10-23 22:02:08 +03:00
Diego Biurrun
1f821e5ad3 configure: Print warnings after all other output 2016-10-19 10:13:34 +02:00
Diego Biurrun
20abcaa273 configure: #include stdint.h as part of libxavs test
Unfortunately the xavs.h API header is not self-sufficient and relies
on manual stdint.h inclusion by its users.
2016-10-06 12:32:34 +02:00
Anton Khirnov
5cc0057f49 lavu: remove the custom atomic API
It has been replaced by C11 stdatomic.h and is now unused.
2016-10-02 19:35:55 +02:00
Anton Khirnov
eb34d40354 Add a compat dummy stdatomic.h used when threading is disabled
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:57:56 +02:00
Anton Khirnov
f9a6a80e06 Add a compat stdatomic.h implementation based on pthreads
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:56:52 +02:00
Anton Khirnov
bb81ed4765 Add a compat stdatomic.h implementation based on suncc atomics
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:55:41 +02:00
Anton Khirnov
c2755864af Add a compat stdatomic.h implementation based on windows atomics
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:54:28 +02:00
Anton Khirnov
4e928ef340 Add a compat stdatomic.h implementation based on GCC atomics
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:52:08 +02:00
Anton Khirnov
13f5d2bf75 configure: check for stdatomic.h
Since this is a C11 feature, it requires -std=c11.

Not actually used for anything yet, that will be added in the following
commits.
2016-10-02 18:49:14 +02:00
Anton Khirnov
de2ae3c1fa lavc: add clobber tests for the new encoding/decoding API 2016-09-28 10:01:52 +02:00
Diego Biurrun
ab3554e1a7 configure: Drop check_lib()/require() in favor of check_lib2()/require2()
The latter can do everything the former can do, but also handle conditions
the former cannot like multiple header #includes and checking for headers
and functions in a single test program, which is necessary for certain
library tests.
2016-09-13 10:37:01 +02:00
Mark Thompson
a9fb134730 lavc/vaapi: Add VP8 decode hwaccel 2016-09-08 21:58:22 +01:00
Diego Biurrun
ec90305844 configure: Simplify clock_gettime() test 2016-09-06 18:13:00 +02:00
Diego Biurrun
0e5dde7399 configure: Fix --disable-pod2man / --disable-texi2html 2016-09-05 11:18:23 +02:00
Diego Biurrun
b8c2d407ef configure: Simplify libopenjpeg check 2016-09-05 11:18:23 +02:00
Diego Biurrun
2610c9528f configure: Move initial VAAPI check to a more sensible place 2016-09-05 11:18:23 +02:00
Diego Biurrun
4fb311c804 Drop memalign hack
It no longer serves a useful purpose.
2016-09-03 15:11:29 +02:00
Burt P
728e80cd2e High Definition Compatible Digital (HDCD) decoder filter, using libhdcd
Signed-off-by: Burt P <pburt0@gmail.com>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-08-29 19:09:59 +02:00
Diego Biurrun
46e3936fb0 configure: Set __MSVCRT_VERSION__to 0x0700 for MinGW
This exposes some required functionality like _aligned_malloc() in the
MinGW system headers, thus obviating the need for the memalign hack.
2016-08-23 17:07:26 +02:00
Anton Khirnov
89aebc5bcc lavc: align the linesize to 32 when AVX is enabled 2016-08-03 10:56:53 +02:00
James Almer
63ac8e2d93 lavu: add LOCAL_ALIGNED_32
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-08-03 10:56:52 +02:00
Diego Biurrun
5ed4644d6d x11grab: Rename internal component to "xcbgrab" 2016-07-29 19:03:10 +02:00
Diego Biurrun
4fef648d10 Remove the legacy X11 screen grabber
The XCB screen grabber is a drop-in replacement and not under GPL.
2016-07-29 19:03:10 +02:00
Diego Biurrun
ae90119c67 configure: Simplify license incompatibility check 2016-07-27 10:59:48 +02:00
Martin Storsjö
100fb0ddfd configure: Allow detecting and using LLVM lld-link as linker for windows
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-26 09:29:49 +03:00
Martin Storsjö
79fb069299 configure: Move defines for controlling MSVCRT headers to the CRT detection section
This allows these flags to be automatically enabled for clang,
when using MSVCRT headers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-26 09:29:38 +03:00
Martin Storsjö
56af0bc10f configure: Check for strtoll and redirect to _strtoi64 in the msvcrt block
This allows doing this redirection, if building with clang against
old enough MSVC headers that lack strtoll (2012 and older).

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-26 09:29:24 +03:00
Anton Khirnov
ad71d3276f lavfi: add a QSV deinterlacing filter 2016-07-22 19:08:13 +02:00
Anton Khirnov
b0f36a0043 avconv: stop using setpts for input framerate forced with -r
The setpts filter does not signal to the rest of the filtergraph that
the stream is CFR. Just generate the timestamps manually instead.
2016-07-22 19:08:12 +02:00
Martin Storsjö
6f9e34baea arm: Check for support for the .fpu directive
When targeting COFF (windows), clang doesn't support this
directive (while binutils supports it for all targets).

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-07-21 12:52:10 +03:00
Diego Biurrun
8c929037ec build: Add a new component for H.264 parsing code
This fixes standalone compilation of the SVQ3 decoder, which had
incomplete dependencies related to H.264 parsing.
2016-06-29 12:31:03 +02:00
Martin Storsjö
82b7525173 Add an OpenH264 decoder wrapper
While it is less featureful (and slower) than the built-in H264
decoder, one could potentially want to use it to take advantage
of the cisco patent license offer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2016-06-28 14:17:43 +03:00
Anton Khirnov
ac7bfd6967 lavfi: add a QSV scaling filter 2016-06-21 19:53:38 +02:00
Paul B Mahol
d78fd2fa21 Add MagicYUV decoder
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2016-06-20 15:45:51 -04:00
Diego Biurrun
b2d5d6a7f2 build: Only enable symbol reduction if the compiler does proper DCE
With compilers that do not support proper dead code elimination, like
Sun C 5.12, linking fails due to missing references to unavailable,
but also unused, symbols.

Bug-Id: 895
2016-05-30 14:59:43 +02:00
Diego Biurrun
c5fd4b5061 build: Simplify postprocessing of linker version script files
Generate the files in a single postprocessing step w/o intermediate files.
2016-05-29 16:49:16 +02:00
Anton Khirnov
38392b2af8 hwcontext_vdpau: implement device creation 2016-05-26 15:40:33 +02:00
Timo Rothenpieler
09522a303d configure: Don't require nonfree for nvenc
As the nvEncodeApi.h header is now MIT licensed, this can be dropped.
The loaded CUDA and NVENC libraries are part of the nvidia driver, and
thus count as system libraries.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-05-19 14:17:03 +02:00
Anton Khirnov
6f58b4dc47 nvenc: drop the hard dependency on CUDA
The code needs only a few definitions from cuda.h, so define them
directly when CUDA is not enabled. CUDA is still required for accepting
HW frames as input.

Based on the code by Timo Rothenpieler <timo@rothenpieler.org>.
2016-05-19 14:17:03 +02:00
Anton Khirnov
2156c4c300 nvenc: write the VUI signal properties for HEVC
Bump the API version requirement to 6.

Based on a patch by Agatha Hu <ahu@nvidia.com>.
2016-05-19 14:17:03 +02:00
Anton Khirnov
85ce9636e4 configure: move the hardware accel libs' entries in the configure output
Print them as a subsection of the external library section, in line with
what is done for the help text in the previous commit.
2016-05-19 13:43:29 +02:00
Anton Khirnov
c0f4c7db9f configure: move the hardware accel libs' entries in the help text
Group them in a subsection of the external library section. That should
make them easier to find and understand how they fit in the scheme of
things.

Also, rewrite the description text in a similar way as in the previous
commit.
2016-05-19 13:41:51 +02:00
Anton Khirnov
5e2203448a configure: improve the help text for external libraries
Add a more accurate description of what the switches actually do (i.e.
allow using the given library, not enabling the corresponding
codecs etc.).

Replace the library descriptions, in many cases boilerplate text without
useful information, with a short summary of what the library does.
2016-05-19 13:40:53 +02:00
Diego Biurrun
1f1ad8ace0 configure: Document --enable-libfontconfig 2016-05-05 10:47:00 +02:00
Janne Grunau
c267413321 Revert "mmaldec: autodetect by default" since it breaks linking on systems without mmal libraries
This reverts commit 33ac77e850.
2016-04-30 16:05:32 +02:00
wm4
33ac77e850 mmaldec: autodetect by default
It qualifies as a system library.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:34:10 +02:00
wm4
74beead9bd 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.)

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-04-30 08:31:08 +02:00