1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-24 13:56:33 +02:00

2852 Commits

Author SHA1 Message Date
Huang, Zhengxu
2fd6e7d077 libavcodec/mjpeg_qsv: Add QSV MJPEG encoder
usage:
-hwaccel qsv -c:v h264_qsv -i in -c:v mjpeg_qsv -global_quality 80 -f
mjpeg out

Signed-off-by: ChaoX A Liu <chaox.a.liu@gmail.com>
Signed-off-by: Zhengxu Huang <zhengxu.maxwell@gmail.com>
Signed-off-by: Andrew Zhang <huazh407@gmail.com
Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
2017-07-25 13:27:43 +02:00
Martin Storsjö
1912973a2d d3d11va: Check WINAPI_FAMILY instead of HAVE_LOADLIBRARY
If using the winstore compat library, a fallback LoadLibrary
function does exist, that only calls LoadPackagedLibrary though
(which doesn't work for dynamically loading d3d11 DLLs).

Therefore explicitly check the targeted API family instead.

Make this check a reusable HAVE_* component which other parts
of the libraries can check when necessary as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-07-05 13:55:11 +03:00
wm4
cfc9e7c94e hwcontext_d3d11va: add option to enable debug mode
Basically copied from VLC (LGPL):

http://git.videolan.org/?p=vlc.git;a=blob;f=modules/video_output/win32/direct3d11.c;h=e9fcb83dcabfe778f26e63d19f218caf06a7c3ae;hb=HEAD#l1482
http://git.videolan.org/?p=vlc.git;a=blob;f=modules/codec/avcodec/d3d11va.c;h=85e7d25caebc059a9770da2ef4bb8fe90816d76d;hb=HEAD#l599

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-06-27 00:23:12 +02:00
Diego Biurrun
0e83e95c60 configure: Reset X86ASM_DEP(FLAGS) when probing for the assembler program
These variables might be set from a previous probe run, but one or the
other program that is probed for may not grok the flags, resulting in
errors during assembling when the values of those variables are passed
to the assembler.
2017-06-24 21:30:42 +02:00
Janne Grunau
857e26b655 build: Add an option for passing linker flags to the shared library build
Also employ this mechanism to pass $libdir to the runtime library search
path if rpath is enabled. This fixes underlinking of some test binaries
on some systems.
2017-06-22 13:54:34 +02:00
Martin Storsjö
333a34da3a configure: Automatically add -isysroot for darwin if --sysroot is specified
Check the existing flags in the cc/cflags/cppflags/ldflags for
occurrances of -isysroot; if none is found but --sysroot was specified,
set -isysroot to the same value as --sysroot.

This simplifies configuring cross-builds for iOS, if the global
environment variable SDKROOT isn't set.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-06-21 22:32:52 +03:00
Martin Storsjö
fd1ffa1f10 d3d11va: Link directly to dxgi.dll and d3d11.dll functions if LoadLibrary is unavailable
When targeting the UWP API subset, the LoadLibrary function is not
available (and the fallback, LoadPackagedLibrary, can't be used to
load system DLLs). In these cases, link directly to the functions
in the DLLs instead of trying to load them dynamically at runtime.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-06-18 23:45:03 +03:00
Diego Biurrun
d9da7151ee configure: Fix handling of _select dependencies
The handling of _select dependencies had two issues:

1) extralibs from _select dependencies of a component were not added to
   the list of extralibs for that component.
2) extralibs from dependencies were only added to the extralibs of a
   component if the component was enabled. This led to incorrect results
   if that component was enabled by another component later in the dependency
   resolution process. Instead, always generate the full list of component
   extralibs for use later in the dependency resolution process.

Also remove a leftover unused variable.
2017-06-17 19:12:27 +02:00
Diego Biurrun
7b1f9873be build: Adjust dependencies for faan(i)dct components 2017-06-17 19:12:27 +02:00
Diego Biurrun
635897ac78 configure: Factorize qsv dependencies 2017-06-17 19:12:27 +02:00
Diego Biurrun
c599c43fa1 configure: Add missing arch dependencies for arch extensions 2017-06-17 19:12:27 +02:00
Diego Biurrun
9d12dd6fa8 configure: Add x86 dependency for mmx_internal
This ensures that mmx_internal is only ever enabled on x86.
2017-06-17 19:12:26 +02:00
Diego Biurrun
2f792cb670 build: Add missing idctdsp dependency for clearvideo 2017-06-17 19:12:26 +02:00
Diego Biurrun
e2edf1529c configure: Simplify AltiVec/VSX check with a helper function 2017-06-13 12:34:35 +02:00
Diego Biurrun
d76479c502 ppc: Drop support for Apple GCC
Apple GCC has not been a thing anymore on PowerPC since many years.
2017-06-13 12:34:35 +02:00
wm4
f9e7a2f95a dxva: add support for new dxva2 and d3d11 hwaccel APIs
This also adds support to avconv (which is trivial due to the new
hwaccel API being generic enough).

The new decoder setup code in dxva2.c is significantly based on work by
Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2017-06-08 21:20:18 +02:00
Diego Biurrun
ed434be106 configure: Bail out if both GnuTLS and OpenSSL are enabled
Both libraries provide similar functionality and cannot be used together.
When both are enabled one is used and the other ignored arbitrarily. Error
out instead and have the user choose which library to use.
2017-06-06 14:47:42 +02:00
Diego Biurrun
adfd7892e3 configure: Move x86 assembler sanity check into assembler probe function
This allows for more graceful fallback from NASM to Yasm if the available
NASM version is too old.
2017-06-03 19:34:08 +02:00
Diego Biurrun
5e27ef800b build: Add missing zlib dependencies for several protocols 2017-06-03 19:34:08 +02:00
Diego Biurrun
61cec5adaa tls: Hide backend implementation details from users
TLS is currently implemented over either OpenSSL or GnuTLS, with more
backends likely to appear in the future. Currently, those backend libraries
are part of the protocol names used during e.g. the configure stage of a
build. Hide those details behind a generically-named declaration for the
TLS protocol to avoid leaking those details into the configuration stage.
2017-06-02 10:41:52 +02:00
Martin Storsjö
4d444d04c1 configure: Default to _WIN32_WINNT=0x0502 (XP) as minimum, for legacy mingw
This makes the getaddrinfo functions visible, which aren't normally
by default on legacy mingw.

We already force __MSVCRT_VERSION__ to an XP version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-06-01 13:29:51 +03:00
Martin Storsjö
427f7a1f9e configure: Fix the msvcrt version check for mingw32
This was actually broken when committed in 46e3936fb04; the
test never succeeded, and thus, _aligned_malloc wasn't actually
used on legacy mingw.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-05-31 13:30:24 +03:00
Luca Barbato
6a7e928555 configure: Do not check for the __builtin_vec_vsx_ld
Clang support for Altivec/VSX uses a different approach.
2017-05-29 13:40:47 +02:00
Martin Storsjö
d7320ca3ed arm: Avoid using .dn register aliases
clang now (in the upcoming 5.0 version) is capable of building our
arm assembly without relying on gas-preprocessor, although clang/LLVM
doesn't support .dn register aliases.

The VC1 MC assembly was only built and used if the chosen assembler
supported the .dn directives though. This was supported as long as
gas-preprocessor was used.

This means that VC1 decoding got a speed regression on clang 5.0,
unless the user manually chose using gas-preprocessor again.

By avoiding using the .dn register aliases, we can build the VC1 MC
assembly with the latest clang version.

Support for the .dn/.qn directives in clang/LLVM isn't actively planned,
see https://bugs.llvm.org/show_bug.cgi?id=18199.

This partially reverts 896a5bff64264f4d01ed98eacc97a67260c1e17e.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-05-15 09:52:18 +03:00
Martin Storsjö
59cee42d7d arm: Check for the .arch directive in configure
When targeting windows, the .arch directive isn't available.

So far, when building for windows, we've always used gas-preprocessor,
both when using msvc's armasm and when using clang. Lately, clang/llvm
has implemented the last missing piece (altmacro support) for building
our assembly without gas-preprocessor. This means that we now build
for arm/windows with clang without any extra compatibility layer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-05-08 14:21:08 +03:00
Diego Biurrun
b5f19f7478 aac: Split function to parse ADTS header data into public and private part
This makes the currently semi-public avpriv_aac_parse_header() function
private to libavcodec and adds a proper public API function to return
the parts of the ADTS header required in libavformat.
2017-05-02 18:50:34 +02:00
Luca Barbato
41262498ff configure: Fix sem_timedwait probe
It requires pthreads.
2017-04-25 00:38:07 +02:00
Luca Barbato
44aafa3325 configure: Properly escape arguments in filter/filter_out helper functions
The arguments may contain '$', which gets interpreted by the shell.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-04-25 00:38:07 +02:00
Paul B Mahol
9227bd8ac2 utvideodec: Reuse the huffyuv add_left
~10% faster when simd is available.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-04-15 15:37:18 +02:00
Diego Biurrun
b62ed68738 configure: Better names for functions that sanitize input 2017-04-03 14:39:08 +02:00
Mark Thompson
0fd91e4bfc vaapi_encode: Add VP9 support 2017-04-02 19:06:33 +01:00
Diego Biurrun
5a969f64b9 jack: Drop support for old (2012) JACK versions 2017-03-28 09:11:00 +02:00
Diego Biurrun
75ef915434 configure: Disable inline assembly for PathScale compilers
These compilers pass the inline assembly check, but fail to compile
our inline assembly in various ways.
2017-03-27 09:47:58 +02:00
Diego Biurrun
d6390090c4 configure: Skip check for inline assembly capabilities when explicitly disabled
Otherwise inline assembly may get enabled when disabled on the command line.
2017-03-24 20:24:08 +01:00
Diego Biurrun
dcc39ee10e lavc: Remove deprecated XvMC support hacks
Deprecated in 11/2013.
2017-03-23 10:09:14 +01:00
Luca Barbato
bd805964f4 configure: Do not treat JACK as a system library
JACK is not commonly installed and should not be picked up as a
dependency unless specifically requested.
2017-03-21 04:23:41 +01:00
Luca Barbato
0d8013b88b configure: Replace -no_weak_symbols with -Werror=partial-availability
Jack uses weak symbols on purpose.
2017-03-15 20:24:52 +01:00
Luca Barbato
81bffae368 configure: Check for -no_weak_imports in ldflags on macOS
Recent versions of macOS provide more POSIX API (in particular,
clock_gettime) than previous versions and recent Apple toolchains
provide all that API, even when targeting older releases without
said API. Disallow linking to functions which might not be available
at runtime.

To actually have an effect, either add
--extra-cflags="-mmacosx-version-min=10.11" (or any other version
prior to 10.12) or set MACOSX_DEPLOYMENT_TARGET=10.11 when running
configure.

As a workaround for libav versions without this fix, one can
also add --extra-cflags="-mmacosx-version-min=10.11
-Werror=partial-availability" while running configure.

The -no_weak_imports flag is new in Xcode 8; in Xcode 7 it is not
supported. This is not an issue since Xcode 7 only ships with the
10.11 macOS SDK, which lacks clock_gettime.

Bug-Id: 1033

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2017-03-07 09:48:55 +02:00
Diego Biurrun
57b753b445 build: Prefer NASM assembler over YASM
NASM is more actively maintained and permits generating dependency information
as a sideeffect of assembling, thus cutting build times in half.
2017-03-07 08:32:37 +01:00
Diego Biurrun
f54037da8a build: Make x86 assembler commandline-selectable 2017-03-07 08:32:37 +01:00
Diego Biurrun
51411eb7ff build: Special-case handling of SDL CFLAGS
SDL adds some "special" CFLAGS that interfere with building normal
binaries. Capture those CFLAGS separately and avoid adding them to
the general CFLAGS.
2017-03-07 08:32:37 +01:00
Diego Biurrun
003124ebf4 build: Fix logic of clock_gettime() check
We should only check for clock_gettime() if _POSIX_MONOTONIC_CLOCK is
available and do a full link check for clock_gettime() in all cases.
2017-03-07 08:32:37 +01:00
Diego Biurrun
808ef43597 build: Explicitly set 32-bit/64-bit object formats for nasm/yasm
Consistently use object format names with "32" suffix and set object format
to "win64" on Windows x86_64, which fixes assembling with nasm.
2017-03-05 14:38:56 +01:00
Diego Biurrun
5ff3b5cafc build: Add pthreads to list of avutil extralibs
libavutil uses pthreads in the buffer code (abstracted through a header).
2017-03-01 12:02:11 +01:00
Diego Biurrun
3c0efbd033 build: Allow generating dependencies as a side-effect of assembling 2017-03-01 10:18:15 +01:00
Diego Biurrun
39e208f4d4 build: Generalize yasm/nasm-related variable names
None of them are specific to the YASM assembler.
2017-03-01 10:18:15 +01:00
Diego Biurrun
58407b4d74 configure: Fix typo in objcc default setting
Also drop stray duplicate OBJCC config.mak entry.
2017-03-01 09:23:42 +01:00
Diego Biurrun
7cb1d9e2db build: Fine-grained link-time dependency settings
Previously, all link-time dependencies were added for all libraries,
resulting in bogus link-time dependencies since not all dependencies
are shared across libraries. Also, in some cases like libavutil, not
all dependencies were taken into account, resulting in some cases of
underlinking.

To address all this mess a machinery is added for tracking which
dependency belongs to which library component and then leveraged
to determine correct dependencies for all individual libraries.
2017-03-01 09:00:40 +01:00
Diego Biurrun
d154bdd3d0 configure: Simplify dlopen check 2017-03-01 09:00:40 +01:00
Diego Biurrun
21cca00dfe build: Explicitly disable external libraries when not explicitly enabled
Leaving those variables in an undefined state allows them getting implicitly
enabled when they are declared as weak dependencies of other components.
In that case, the library check is not run and required linker flags are not
added, resulting in a failing build.

Fixes linking when enabling libfreetype without libfontconfig.
2017-02-28 13:00:20 +01:00