Commit Graph

4990 Commits

Author SHA1 Message Date
James Almer 22ae33fb40 configure: fix minimum required version of libzimg
The new input properties added in 002db7d49a
were introduced to libzimg for the upcoming release 2.7.x

Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-21 00:48:16 -03:00
Stefan Pöschel c94b094858 configure: Fix case of static libmp3lame
Fixes #6918.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-19 23:55:02 -03:00
Felix Matouschek c12c2739cd configure: Fix detection of vp9 decoder/encoder
At least on Android the vp9 decoder/encoder needs $libm_extralibs
to successfully link, it was missing in the check_lib calls for vp9

Signed-off-by: Felix Matouschek <felix@matouschek.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-19 17:18:10 -03:00
sfan5 b1781caf9e configure: remove libtls fallback check
This check is not needed for any supported version of libtls
and causes issues with static builds (libtls links to -lssl -lcrypto).

Signed-off-by: sfan5 <sfan5@live.de>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-19 15:12:24 -03:00
sfan5 b178278c7b configure: fix pkg-config check for libtls
This was not accounted for during merge and is required due to
the refactor in commit 93ccba96df.

Signed-off-by: sfan5 <sfan5@live.de>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-12-19 14:19:03 -03:00
sfan5 387ee1d6aa libavformat: LibreSSL (libtls) support
Signed-off-by: sfan5 <sfan5@live.de>
2017-12-17 17:32:42 +11:00
wang-bin dc08caa8f7 configure: fix probing armv6zk
clang reports 6kz: https://reviews.llvm.org/D14568

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-12-16 18:21:58 +01:00
Mark Thompson 2adfb10921 configure: Move V4L2 M2M help line to the hardware library section 2017-12-10 17:15:06 +00:00
Jacob Trimble 83ecdc9a92 configure: Fix dependencies of aac_at decoder.
Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-30 20:25:04 -03:00
James Almer 5a366f9770 configure: select vp9_superframe_split_bsf when enabling vp9_decoder
This is required since a5679933c1

Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-30 01:51:16 -03:00
Mikhail Mironov 9ea6607d29 Add HW H.264 and HEVC encoding for AMD GPUs based on AMF SDK
Requires AMF headers for at least version 1.4.4.1.

Signed-off-by: Mikhail Mironov <mikhail.mironov@amd.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2017-11-28 22:14:42 +00:00
Jun Zhao 23db3a1ae6 examples: Add a VA-API encode example.
Supports only raw NV12 input.

Example use:
./vaapi_encode 1920 1080 test.yuv test.h264

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Liu, Kaixuan <kaixuan.liu@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2017-11-28 22:14:07 +00:00
Vittorio Giovara 002db7d49a vf_zscale: Add more supported input properties
Bump the minimum version necessary in the configure file.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2017-11-28 14:51:45 -05:00
Philip Langdale 1da9851e34 avcodec/nvdec: Implement vp8 hwaccel 2017-11-26 14:55:01 -08:00
Mark Thompson 40b75a943b vaapi: Add VP8 decode hwaccel 2017-11-26 21:41:19 +00:00
Mark Thompson da4e02b196 lavc: Delete all fake hwaccels
They are now unused.
2017-11-26 21:41:14 +00:00
Mark Thompson 9bd326ac46 lavc: Remove register mechanism for hwaccels
There is no longer any need for a list of them at runtime, because
decoders now carry the pointers to their associated hwaccels internally.
The file containing external declarations is now used to make the list
of hwaccels for configure.
2017-11-26 21:36:34 +00:00
Paul B Mahol ffc01280be avfilter: add lv2 wrapper filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-11-26 14:05:25 +01:00
James Almer 4af050c46e configure: remove superfluous cuvid and nvdec checks
Both are autodetected, and their dependency on cuda is checked
elsewhere.

Fixes ticket #6849.

Reviewed-by: Philip Langdale <philipl@overt.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-25 12:43:09 -03:00
Mark Thompson 3650cb2dfa lavu,lavfi,ffmpeg: Remove experimental OpenCL API
This was added in early 2013 and abandoned several months later; as far as
I can tell, there are no external users.  Future OpenCL use will be via
hwcontext, which requires neither special OpenCL-only API nor global state
in libavutil.

All internal users are also deleted - this is just the unsharp filter
(replaced by unsharp_opencl, which is more flexible) and the deshake filter
(no replacement).
2017-11-22 23:20:39 +00:00
Mark Thompson 7faa8d8b03 lavfi: Add OpenCL unsharp mask filter
Intended to replace existing opencl mode of the unsharp filter.
Supports many more pixel formats and works without immediate upload
and download of frame data.  The options are compatible with the
existing filter.
2017-11-22 23:18:35 +00:00
Mark Thompson 9204b2deea lavfi: Add OpenCL overlay filter
Input and output formats must be the same, the overlay format must be
the same as the input except possibly with an additional alpha component.
2017-11-22 23:18:02 +00:00
Mark Thompson 7faae6e745 hwcontext_opencl: DRM to OpenCL mapping for ARM
Using cl_arm_import_memory.  Unfortunately, despite this not being a
standard extension, the function clImportMemoryARM() is not accessible
via clGetExtensionFunctionAddressForPlatform().  This means that it has
to be linked directly to the ARM OpenCL binary, so making a portable
binary is not possible as it is with all other mapping extensions.
2017-11-22 23:02:33 +00:00
Mark Thompson f06754e4f3 hwcontext_opencl: D3D11 to OpenCL mapping
Using cl_khr_d3d11_sharing and cl_intel_d3d11_nv12_media_sharing.
2017-11-22 23:02:33 +00:00
Mark Thompson 9e7cda1b1e hwcontext_opencl: DXVA2 to OpenCL mapping
Using cl_khr_dx9_media_sharing.
2017-11-22 23:02:33 +00:00
Mark Thompson 403cde8e85 hwcontext_opencl: QSV to OpenCL mapping for Intel Media SDK
Uses the cl_intel_va_api_media_sharing extension, which supports only
NV12 surfaces and only mapping from QSV to OpenCL.
2017-11-22 23:02:33 +00:00
Mark Thompson eb3e9f469a hwcontext_opencl: VAAPI to OpenCL mapping for Intel i965+beignet
Supports all surface formats in common between the two.
2017-11-22 23:02:33 +00:00
Mark Thompson b25d8ef0a7 lavu: OpenCL hwcontext implementation 2017-11-22 23:02:29 +00:00
James Zern b765a04550 configure: require libvpx-1.4.0 for vp[89] support
this will simplify libvpxenc/dec.c and ensure more stable versions of
the codecs are present.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
2017-11-20 16:02:21 -08:00
Philip Langdale 6b77a10e43 avcodec: Implement mpeg4 nvdec hwaccel
This was predictably nightmarish, given how ridiculous mpeg4 is.
I had to stare at the cuvid parser output for a long time to work
out what each field was supposed to be, and even then, I still don't
fully understand some of them. Particularly:

vop_coded: If I'm reading the decoder correctly, this flag will always
           be 1 as the decoder will not pass the hwaccel any frame
           where it is not 1.
divx_flags: There's obviously no documentation on what the possible
            flags are. I simply observed that this is '0' for a
            normal bitstream and '5' for packed b-frames.
gmc_enabled: I had a number of guesses as to what this mapped to.
             I picked the condition I did based on when the cuvid
             parser was setting flag.

Also note that as with the vdpau hwaccel, the decoder needs to
consume the entire frame and not the slice.
2017-11-20 07:21:41 -08:00
Philip Langdale 8bca292c30 avcodec: Implement mpeg1 nvdec hwaccel
Once I remembered that there's a separate decoder type for mpeg1,
even though params struct is shared with mpeg2, everything worked.
2017-11-20 07:03:26 -08:00
James Almer c9cd990dcc Merge commit '3152058bf1dca318898550efacf0286f4836cae6'
* commit '3152058bf1dca318898550efacf0286f4836cae6':
  libavcodec: Don't use dllexport, only dllimport when building DLLs

Merged-by: James Almer <jamrial@gmail.com>
2017-11-19 18:26:45 -03:00
James Almer c6f7eb8663 configure: fix module dependencies on zlib
select should not be used with external libraries. It's mean to soft
enable internal modules/features.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-19 18:14:48 -03:00
Martin Storsjö 3152058bf1 libavcodec: Don't use dllexport, only dllimport when building DLLs
The only purpose of dllexport (which is set while building the library
that exports the symbols) is to have the linker automatically
export such symbols into a DLL without using a def file - it doesn't
affect the generated code.

For both MSVC and mingw builds, this isn't essential since we override
what symbols to export via an autogenerated def file instead.

Update a comment in configure to refer to the right concept.

With lld, this avoids warnings about duplicate export directives,
when some symbols are requested to be exported both via dllexport
attributes and via the autogenerated def file.

This also reduces the number of lines of code marginally.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-11-19 22:01:38 +02:00
James Darnley 0b7cd29d47 configure: add audio_frame_queue dependency for aptx codec 2017-11-19 14:54:34 +01:00
Philip Langdale 7c9f739d86 avcodec: Implement mpeg2 nvdec hwaccel
This is mostly straight-forward. The weird part is that it should
just work for mpeg1, but I see corruption in my test cases, so I'm
going to try and fix that separately.
2017-11-18 08:13:50 -08:00
Timo Rothenpieler 4fb20d4e3a configure: call flatten_extralibs in a subshell
By putting the call in a subshell, the problem of it spilling
cleanup-decision from a previous library to other libraries is avoided.

For example, it could have already cleaned up cuda_extralibs in a
previous library that depended on cuda. Then when it gets to avutil, it
will never pick up the dependency of avutil to cuda, which depends on
libdl, which in turn results in a missing -ldl extralib, resulting in
link failures in certain configurations.
2017-11-16 17:39:39 +01:00
James Almer edef07569c Merge commit 'bad7ce1d82f0b7da55086b8c6124eff0d35a1b1a'
* commit 'bad7ce1d82f0b7da55086b8c6124eff0d35a1b1a':
  makedef: Pass EXTERN_PREFIX from configure to makedef

Merged-by: James Almer <jamrial@gmail.com>
2017-11-16 13:12:59 -03:00
James Almer 1146a7a363 Merge commit 'd070b9b703a542429a13db9623109ae20474c775'
* commit 'd070b9b703a542429a13db9623109ae20474c775':
  configure: Coalesce some arch configuration and PIC handling

Merged-by: James Almer <jamrial@gmail.com>
2017-11-16 13:11:52 -03:00
James Almer b449af20d5 Merge commit '9e48de3cc86c732d9cebd496d6f0a2b7e7732754'
* commit '9e48de3cc86c732d9cebd496d6f0a2b7e7732754':
  configure: Miscellaneous minor changes

Merged-by: James Almer <jamrial@gmail.com>
2017-11-16 13:11:24 -03:00
Martin Storsjö bad7ce1d82 makedef: Pass EXTERN_PREFIX from configure to makedef
This avoids having to use either "dumpbin -headers" to find out
the current architecture, or pass $ARCH from configure to deduce it.

When configuring with --disable-asm, ARCH is equal to "c", which doesn't
give any indication of what symbol prefix is to be used.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-11-16 16:54:08 +02:00
Diego Biurrun d070b9b703 configure: Coalesce some arch configuration and PIC handling 2017-11-15 13:29:41 +01:00
Diego Biurrun 9e48de3cc8 configure: Miscellaneous minor changes
- Move a variable closer to where it is used
- Add an explanatory comment
- Simplify a crosscompile check
- Minor SHFLAGS simplification
- Coalesce some threads tests
2017-11-15 13:29:41 +01:00
Philip Langdale 912ceba61b avcodec: Implement vc1 nvdec hwaccel
This hwaccel is interesting because it also works for wmv3/9 content,
which is not supported by the nvidia parser used by cuviddec.
2017-11-14 19:40:01 -08:00
Aman Gupta e7a5249ab1 avcodec/videotoolboxenc: add hevc_videotoolbox encoder
Signed-off-by: Aman Gupta <aman@tmm1.net>
Reviewed-by: Rodger Combs <rodger.combs@gmail.com>
2017-11-13 14:28:14 -08:00
Timo Rothenpieler 578addcff6 configure: factorize nvdec dependencies 2017-11-13 22:10:37 +01:00
Timo Rothenpieler 681c638fab configure: fix cuda dependency on nvdec 2017-11-13 22:10:37 +01:00
Timo Rothenpieler f3f73f0893 avcodec: implement vp9 nvdec hwaccel 2017-11-13 20:33:10 +01:00
James Almer d9ff1e4c8b configure: fix writing library dependencies to config.sh
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-12 23:04:17 -03:00
James Almer b72ac6dbb8 configure: fix writing library dependencies to config.sh
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-12 23:02:31 -03:00