This filter does HDR(HDR10/HLG) to SDR conversion with tone-mapping.
An example command to use this filter with vaapi codecs:
FFMPEG -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device \
opencl=ocl@va -hwaccel vaapi -hwaccel_device va -hwaccel_output_format \
vaapi -i INPUT -filter_hw_device ocl -filter_complex \
'[0:v]hwmap,tonemap_opencl=t=bt2020:tonemap=linear:format=p010[x1]; \
[x1]hwmap=derive_device=vaapi:reverse=1' -c:v hevc_vaapi -profile 2 OUTPUT
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
The FATE tests for MSVC versions older than 2013 are untested in FATE
and apparently are no longer supported.
This commit makes the configure process error out in case an older version
is used, and suggests to use a supported version of MSVC to compile.
This also changes the documentation to reflect this.
As discussed on IRC:
2018-05-12 19:45:16 jamrial then again, most of those were for old msvc, and i think we're not supporting versions older than 2013 (first one c99 compliant) anymore
2018-05-12 19:45:43 +JEEB yea, I think 2013 update 2 is needed
22:53 <@atomnuker> nevcairiel: which commit broke/unsupported support for msvc 2013?
23:23 <@atomnuker> okay, it was JEEB
23:25 <+JEEB> which was for 2012 and older
23:25 <+JEEB> and IIRC we no longer test those in FATE so that was my assumption
23:26 <+JEEB> 2013 is when MS got trolled enough to actually update their C part
23:26 <+JEEB> aand actually advertised FFmpeg support
23:26 <+JEEB> (although it was semi-failing until VS2013 update 1 or 2)
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
This does require libmysofa with today's latest commit (08f243d1ec).
They already had a pkg-config file, but the dependencies weren't setup right. Until now.
This should be included as `<lilv/lilv.h>`, same as is done in af_lv2.c.
Forcing the extra lilv-0 breaks platforms where the include dir is
`/usr/include/lilv/lilv.h` rather than
`/usr/include/lilv-0/lilv/lilv.h`.
The new include path works for both, because the `pkg-config --cflags`
includes `-I/usr/include/lilv-0`.
It exists, so why not use it? Helps one get rid of additional
search path related flags in addition to PKG_CONFIG_{PATH,LIBDIR}
when utilizing a cross-prefix separate from the sysroot.
This can "demux" .vpy files. Autodetection of .vpy scripts is
intentionally not done, because it would be a major security issue. You
need to force the format, for example with "-f vapoursynth" for the
FFmpeg CLI tools.
Some minor code copied from other LGPL parts of FFmpeg.
I did not find a good way to test a few of the more obscure VS features,
like VFR nodes, compat pixel formats, or nodes with dynamic size/format
changes. These can be easily implemented on demand.
Without properly grouping the checks, the second test would execute for
MSVC cl.exe, which results in configure getting stuck since cl.exe -? is
an interactive paginated help screen, waiting for input.
Remove the wincrypt API calls since we don't support XP anymore and
bcrypt is available since Vista, even on Windows Store builds.
Signed-off-by: Martin Storsjö <martin@martin.st>
Some old mingw-w64 builds seem to provide an incomplete implementation
of the API. Add an extra check to make sure it's disabled for those.
Signed-off-by: James Almer <jamrial@gmail.com>
When using clang-cl it expects parameters passed in MSVC-style, so appropriate toolchain should be selected.
As soon as both clang and clang-cl report themselfs as "clang" with -v option the only chance to detect
clang-cl is passing -? option to both which is valid for clang-cl.exe and not for clang.exe.
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Remove the wincrypt API calls since we don't support XP anymore and bcrypt is
available since Vista, even on Windows Store builds.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
C11 atomics allow direct access. This check should prevent the usage
of bogus stdatomic.h available on some systems.
Signed-off-by: James Almer <jamrial@gmail.com>
It appears strip -o creates new files without preserving permissions
from the source binary, resulting in non executable files.
Signed-off-by: James Almer <jamrial@gmail.com>
This removes the XP compatibility code, and switches entirely to SRW
locks, which are available starting at Windows Vista.
This removes CRITICAL_SECTION use, which allows us to add
PTHREAD_MUTEX_INITIALIZER, which will be useful later.
Windows XP is hereby not a supported build target anymore.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
This reverts commit 0fd475704e.
Revert "lavd: fix iterating of input and output devices"
This reverts commit ce1d77a5e7.
Signed-off-by: Josh de Kock <josh@itanimul.li>
Vanilla clang supports altmacro since clang 5.0, and thus doesn't
require gas-preprocessor for building the arm assembly any longer.
However, the built-in assembler doesn't support .dn directives.
This readds checks that were removed in d7320ca3ed, when
the last usage of .dn directives within libav were removed.
Alternatively, the assembly could be rewritten to not use the
.dn directive, making it available to clang users.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '8c7554e6a9b126bd6ee5bf80dae9e11e056db2f1':
configure: Add check_x86asm() helper function to simplify some expressions
Merged-by: James Almer <jamrial@gmail.com>
* commit '17ee5b0c13bc17465b71bc9ca1cde9f0eed8b3ff':
configure: Use indirection for the -o assembler flag also for x86asm
Merged-by: James Almer <jamrial@gmail.com>
* commit 'b9ea301e02472d0982b0fa0f80294bd95885bde8':
configure: Use a more sensible suffix for x86 assembly tempfiles
Merged-by: James Almer <jamrial@gmail.com>
* commit '5292e97c42b05db7ad4e51c1ea756b12fdf721ff':
configure: Document available options for the --toolchain parameter
Merged-by: James Almer <jamrial@gmail.com>
* commit 'ea2f72a2c14c67a3b35dac6426d1e3c0fae33fd5':
configure: Don't assume a 16 byte aligned stack on BSDs on i386
Merged-by: James Almer <jamrial@gmail.com>
* commit '847190ebd99ffd57dc89bd568a33bf2d5c424129':
configure: Don't assume an aligned stack on clang on windows
Merged-by: James Almer <jamrial@gmail.com>
* commit '43778a501f1bfbceeddc8eaeea2ea2b3506beeda':
Support AV1 encoding using libaom
This contains some extra changes taken from the libvpx encoder
wrapper, most of them contained in the set_pix_fmt() function.
Merged-by: James Almer <jamrial@gmail.com>
* commit 'c438899a706422b8362a13714580e988be4d638b':
Add AV1 video decoding support through libaom
This contains some extra changes taken from the libvpx decoder
wrapper, most of them contained in the set_pix_fmt() function.
Merged-by: James Almer <jamrial@gmail.com>
* commit 'dd7e63af93b2430b5d42b87a966160c66736342c':
configure: Restore original endianness test
The test was not changed in 67e8f476b7
Merging only the explanation.
Merged-by: James Almer <jamrial@gmail.com>
* commit '31a53ab34e22fe1eec902f79ec1f19ab828a7a0c':
configure: Add check_as() helper function to simplify some expressions
Merged-by: James Almer <jamrial@gmail.com>
* commit '18dc1ff0fb4572b1d50a44905aa1e76bc3bbb0ad':
configure: Add check_ld() helper function to simplify some expressions
Merged-by: James Almer <jamrial@gmail.com>
The protocol requires libsrt (https://github.com/Haivision/srt) to be
installed
Signed-off-by: Sven Dueking <sven.dueking@nablet.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Similar indirections are used for the -o compiler/assembler flag to
account for differences in compiler/assembler syntax. For x86asm half
the infrastructure for doing the same currently exists unused.
Finish and use that infrastructure for consistency.
Behaves like the existing avgblur filter, except working on OpenCL
hardware frames. Takes exactly the same options.
Signed-off-by: Mark Thompson <sw@jkqxz.net>
This can remove units with types in or not in a given set from a stream.
For example, it can be used to remove all non-VCL NAL units from an H.264 or
H.265 stream.
With GCC, request it to maintain 16 byte alignment, and the existing
entry points already align it via attribute_align_arg.
With clang, do the same as for mingw; disable the aligned stack
and let the assembly functions that require it do the alignment
instead.
Signed-off-by: Martin Storsjö <martin@martin.st>
check_cpp_condition was not being called on some targets, which made schannel
remain enabled even when it was not available
Signed-off-by: James Almer <jamrial@gmail.com>
* commit '83fef16b6a8dbbcbd80d159ba3ebe818dbbb2776':
configure: Add check_cpp_condition() helper function to simplify some expressions
Merged-by: James Almer <jamrial@gmail.com>
* commit 'a5e011c8dcbf6968cc60f883d33382ba46147e90':
configure: Add check_cmd() helper function to simplify some expressions
Merged-by: James Almer <jamrial@gmail.com>
* commit '49804dc2baec009577e6b4ee827ae562188fbc2f':
configure: Use test_ prefix for helper functions that do not set variables
Merged-by: James Almer <jamrial@gmail.com>
* commit '8c893aa3cd5f2d73896c72af330dcbfe299fbc5a':
configure: Drop unnecessary variables, shifts, and quotes in helper functions
Merged-by: James Almer <jamrial@gmail.com>
If we'd enable a 16 byte aligned stack, clang/llvm would also assume
that alignment everywhere and produce code that strictly requires it.
That would require adding realignment (via attribute_align_arg) on every
single public library function or enable -mstackrealign (which does the
same on every single function).
Also relatedly; the parameter currently tested (-mllvm
-stack-alignment=16) hasn't actually been supported for quite some
time; current clang versions use -mstack-alignment=16 for the same.
Actually testing for that parameter would be a different change
though, since it has a real risk of changing behaviour on any other
platform where clang is used.
Signed-off-by: Martin Storsjö <martin@martin.st>
Previously the bit pattern for the endianness test was declared as a
global, instead of a local, variable. This ensures that the pattern
appears unchanged in the object file and is not optimized out.
Right now, if someone configures ffmpeg with for example --enable-nvenc they will
get an error message complaining about missing cuda.
This is very confusing and already has lead people into installing the CUDA SDK,
even though it's not what they need.
This will make it complain about ffnvcodec instead.
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
External headers are no longer welcome in the ffmpeg codebase because they
increase the maintenance burden. However, in the NVidia case the vanilla
headers need some modifications to be usable in ffmpeg therefore we still
provide them, but in a separate repository.
The external headers can be found at
https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git
Fate-source is updated because of the deleted files, and dynlink_loader.h
license headers were updated with the standard FFmpeg headers.
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>