1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-02 03:06:28 +02:00
Commit Graph

5334 Commits

Author SHA1 Message Date
Guo, Yejun
d9b2668766 configure: use vpx_codec_vp8_dx/cx for libvpx-vp8 checking
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-04 11:33:41 -03:00
Guo, Yejun
402bf26237 configure: add missing pthreads extralibs dependency for libvpx-vp9
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-03-04 11:33:41 -03:00
Gyan Doshi
fda793f6fa configure: select rotation filters for ffmpeg
autorotate is enabled by default in ffmpeg so the rotation filters
are required and will be attempted for insertion without the user's
knowledge if an input stream has rotation side-data.
2019-03-02 20:49:12 +05:30
Timo Rothenpieler
85051febc6 configure: update minimum required ffnvcodec versions
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-02-27 18:03:17 +01:00
Timo Rothenpieler
c775410f31 configure: pass windows-path to nvcc whenever cygpath is available
It might be using cl.exe on Windows, which does not understand Unix-Paths.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-02-27 18:03:17 +01:00
Philip Langdale
114ead9735 configure: deprecate cuda_sdk dependency option
With all of our existing users of cuda_sdk switched over to ffnvcodec,
we could remove cuda_sdk completely and say that we should no longer
add code that requires the full sdk, and rather insist that such code
only use ffnvcodec.

As discussed previously, the use of nvcc from the sdk is still
supported with a distinct option.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-02-27 18:03:17 +01:00
Philip Langdale
b4c9c09915 avfilter/vf_thumbnail_cuda: Switch to using ffnvcodec
This change switches the vf_thumbnail_cuda filter from using the
full cuda sdk to using the ffnvcodec headers and loader.

Most of the change is a direct mapping, but I also switched from
using texture references to using texture objects. This is supposed
to be the preferred way of using textures, and the texture object API
is the one I added to ffnvcodec.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-02-27 18:03:17 +01:00
Philip Langdale
2544c7ea67 avfilter/vf_scale_cuda: Switch to using ffnvcodec
This change switches the vf_scale_cuda filter from using the
full cuda sdk to using the ffnvcodec headers and loader.

Most of the change is a direct mapping, but I also switched from
using texture references to using texture objects. This is supposed
to be the preferred way of using textures, and the texture object API
is the one I added to ffnvcodec.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-02-27 18:03:17 +01:00
Philip Langdale
7debf4277c avfilter/vf_yadif_cuda: Switch to using ffnvcodec
This change switches the vf_thumbnail_cuda filter from using the
full cuda sdk to using the ffnvcodec headers and loader.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-02-27 18:03:17 +01:00
Philip Langdale
5f47bfd50a configure: Add an explicit check and option for nvcc
The use of nvcc to compile cuda kernels is distinct from the use of
cuda sdk libraries and linking against those libraries. We have
previously not bothered to distinguish these two cases because all
the filters that used cuda kernels also used the sdk. In the following
changes, I'm going to remove the sdk dependency from those filters,
but we need a way to ensure that nvcc is present and functioning, and
also a way to explicitly disable its use so that the filters are not
built.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2019-02-27 18:03:17 +01:00
Moritz Barsnick
a84af760b8 configure: fix dependencies for mlp and truehd encoders
Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
2019-02-12 22:53:03 +01:00
Marton Balint
0c3333faf6 configure: warn about disabled explicitly enabled components
If we enable a component but a dependant library is disabled, then the enabled
component gets silently disabled. Warning about disabled explicitly enabled components
allows configure to show the missing dependencies and if --fatal-warnings is
used it can also fail if the user wants it so.

For example if libdav1d is not availble ./configure --enable-decoder=libdav1d
succeeds but the libdav1d decoder is not be enabled. After the patch configure
will warn about this:

WARNING: Disabled libdav1d_decoder because not all dependencies are satisfied: libdav1d

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-02-11 22:01:48 +01:00
Jan Ekström
100bfac6d6 add libaribb24 ARIB STD-B24 caption decoder
* Outputs ASS lines with basic coloring and font scaling for each
  given region.
* Sets the default style to the resolution of the subtitle plane
  (for example, 960x540 / 36pt font for profile A).
* Has options to:
  * Disable ruby text (which is coded as regions which have
    half-height text in libaribb24).
    Enabled by default as without positioning ruby text only
    confuses as it is usually coded in the beginning of the decoded
    subtitle line.
  * Set the working directory, in which libaribb24 will read
    configuration as well as into which it may save broadcast extra
    symbols as PNG.
    Unset by default.

The unconventional library check can be explained by the library's
current master branch being licensed as LGPLv3, but at the time of
writing the latest official release is still licensed under GPLv3.

Thus, one either has to wait for the following release, or enable
GPLv3.
2019-02-10 03:30:52 +02:00
Zachary Zhou
b8ebce4f84 libavfilter: add transpose_vaapi filter
Swap width and height when do clock/cclock rotation
Add reversal/hflip/vflip options

ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128
-hwaccel_output_format vaapi -i input.264 -vf "transpose_vaapi=clock_flip"
-c:v h264_vaapi output.h264

Signed-off-by: Zachary Zhou <zachary.zhou@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2019-01-23 23:29:40 +00:00
Carl Eugen Hoyos
34ca5adf9a configure: Fix hymt decoder standalone compilation. 2019-01-10 19:59:01 +01:00
James Almer
4ec2daf0de configure: add dxva2 extralibs to avcodec
DXVA2 may be enabled even when every relevant module is disabled,
which would result in the dependency generator not including its
extralibs to avcodec.

Fixes ticket #7642.

Signed-off-by: James Almer <jamrial@gmail.com>
2019-01-06 15:12:21 -03:00
James Almer
3209d7b393 configure: bump year
Happy new year!
2019-01-01 15:26:34 -03:00
Carl Eugen Hoyos
1a6cca1989 configure: Make sure libpostproc can be found if -rpath-link doesn't work.
Solaris ld takes "-rpath-link=libpostproc" as indication to search in "-link=libpostproc".
2018-12-28 00:22:13 +01:00
Peter Ross
16ec62bbf4 configure: make --windres option work
this option is described by --help, but the definition was missing in CMDLINE_SET.
2018-12-20 12:46:11 +11:00
Peter Ross
d80eb8409c configure: --help should dipslay --host-extralibs 2018-12-20 12:46:11 +11:00
Peter Ross
fa0f898e3f configure: --help typo 2018-12-20 12:46:11 +11:00
Carl Eugen Hoyos
63977ac38f configure: Use "clang" as cc_default for Android. 2018-12-17 01:45:14 +01:00
James Almer
70ab2778be libdav1d: update API usage to the first stable release
The color fields were moved to another struct, and a way to propagate
timestamps and other input metadata was introduced, so the packet
fifo can be removed.

Add support for 12bit streams, an option to disable film grain, and
read the profile from the sequence header referenced by the ouput
picture instead of guessing based on output pix_fmt.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-12-12 19:56:16 -03:00
James Almer
9c49933a3e configure: require the first stable version of libdav1d
Signed-off-by: James Almer <jamrial@gmail.com>
2018-12-11 12:42:22 -03:00
Paul B Mahol
42d5b59bdc configure: check if dlfcn.h is present for ladspa and frei0r, if not abort early
Fixes #4517.
2018-12-03 11:07:49 +01:00
hwrenx
701cbbb58c libdavs2: update api version and enable avx option
Signed-off-by: hwrenx <hwrenx@126.com>
2018-12-03 14:37:05 +08:00
Ruiling Song
416dc9a5e8 lavf: add transpose_opencl filter
Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2018-12-02 23:39:37 +00:00
Mark Thompson
2f6b1806ce configure: Avoid use of nonstandard features of sed
Standard sed does not support EREs.

Fixes #7310.
2018-12-02 23:31:50 +00:00
Carl Eugen Hoyos
f7faaa8c18 Force aix nm to work on 32 and 64 bit binaries by default. 2018-12-02 15:19:13 +01:00
Shiyou Yin
5c806d5b54 configure: enable mipsfpu for loongson platform.
mipsfpu supported by loongson 3a2000,3a3000,3a4000,2k1000, Fate tests passed.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-11-30 19:20:19 +01:00
Peter Ross
8b7a1c2227 configure: memalign is broken on djgpp 2.05
djgpp 2.05 finally provides posix-compatible memalign, but it is broken,
so use malloc instead.

discussion: http://www.delorie.com/archives/browse.cgi?p=djgpp/2017/12/29/16:26:58
2018-11-28 22:16:07 +11:00
Peter Ross
dea1224754 additional math.h functions for djgpp 2018-11-28 22:16:07 +11:00
Peter Ross
533ba0b6b5 configure: detect djgpp libc 2018-11-28 22:16:07 +11:00
Carl Eugen Hoyos
737b5f5869 configure: Add -Wno-char-subscripts.
Silences many warnings on systems with signed char where
the compiler cannot distinguish between char and int8_t.
2018-11-25 00:39:01 +01:00
Carl Eugen Hoyos
63c8558667 configure: Disable direct stripping on sunos.
Sunos strip doesn't know -o.
Reported-by: Michael Kostylev
2018-11-25 00:38:34 +01:00
Paul B Mahol
0279cb4f69 avcodec: add truehd_core bitstream filter 2018-11-23 22:03:56 +01:00
Marton Balint
972ded33c0 avfilter/vf_freezedetect: add filter to detect frozen input
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-19 22:11:42 +01:00
hwrenx
bddcbb932f configure: update api version of libxavs2
abolish parameter IntraPeriod &&
replaced by IntraPeriodMax/Min

Signed-off-by: hwrenx <hwrenx@126.com>
2018-11-19 18:20:49 +01:00
Mark Thompson
2ce3a48f30 configure: Add missing xlib dependency for VAAPI X11 code
Fixes #7538.
2018-11-14 22:56:18 +00:00
Marton Balint
936d18fb42 avfilter/vf_minterpolate: use common scene sad functions
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-11 20:30:50 +01:00
Marton Balint
7748f395de avfilter/vf_select: use common scene sad functions
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-11 20:30:50 +01:00
Marton Balint
6c2a7a8e9a avfilter/vf_framerate: factorize SAD functions which compute SAD for a whole frame
Also add SIMD which works on lines because it is faster then calculating it on
8x8 blocks using pixelutils.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-11-11 20:30:50 +01:00
James Almer
9bf9358b61 avcodec: libdav1d AV1 decoder wrapper.
Originally written by Ronald S. Bultje, with fixes, optimizations and
improvements by James Almer.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-11-06 12:40:27 -03:00
James Almer
beaa350e24 avcodec: libdav1d AV1 decoder wrapper.
Originally written by Ronald S. Bultje, with fixes, optimizations and
improvements by James Almer.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-11-05 21:48:11 -03:00
Mark Thompson
e9d2e3fdaa configure: Add missing V4L2 M2M decoder BSF dependencies 2018-11-05 14:22:10 +00:00
Mark Thompson
a4fb2b1150 configure: Add missing IVF muxer BSF dependency 2018-11-05 14:22:05 +00:00
Mark Thompson
34429182b9 configure: Fix av1_metadata BSF dependency 2018-11-05 00:34:33 +00:00
Philip Langdale
d5272e94ab avfilter/vf_yadif_cuda: CUDA accelerated yadif deinterlacer
This is a cuda implementation of yadif, which gives us a way to
do deinterlacing when using the nvdec hwaccel. In that scenario
we don't have access to the nvidia deinterlacer.
2018-11-02 11:26:30 -07:00
James Almer
2d2af23349 avformat/ivfenc: use the av1_metadata bsf to insert Temporal Delimiter OBUs if needed
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-11-01 22:55:22 -03:00
James Almer
6a112349c2 configure: add missing optional SDL2 dependency to OpenGL outdev
Signed-off-by: James Almer <jamrial@gmail.com>
2018-10-24 21:12:32 -03:00
James Almer
04e8b8b053 avcodec/libaomenc: export the Sequence Header OBU as extradata
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2018-10-11 11:37:53 +02:00
James Almer
ebc3d04b8d avcodec: add an AV1 parser
Simple parser to set keyframes, frame type, structure, width, height, and pixel
format, plus stream profile and level.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-10-03 20:48:49 -03:00
Mark Thompson
476a77128a lavc: Add AV1 metadata bitstream filter
Can adjust colour and timing information.
2018-09-26 23:41:34 +01:00
Mark Thompson
c8c81ac502 lavc: Add coded bitstream read/write support for AV1 2018-09-26 23:27:53 +01:00
Paul B Mahol
efb65abedf avfilter: add audio denoising (afftdn) filter 2018-09-25 19:54:06 +02:00
Marton Balint
db6b4b56b3 avdevice/decklink: add support for selecting devices based on their unique ID
Also bump the API version requirement to 10.9.5, because on olders versions
there were some reports of crashes using the undocumented, yet available
BMDDeckLinkDeviceHandle.

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-23 18:55:29 +02:00
Mark Thompson
ff0eb2bce3 vaapi_encode_mjpeg: Use CBS to store parameters and write headers
Also adds greyscale, 4:2:2, 4:4:4 and RGB support.
2018-09-23 14:42:34 +01:00
Mark Thompson
525de2000b lavc/cbs: Add JPEG support 2018-09-23 14:42:34 +01:00
Mark Thompson
a00763be88 configure: Use pkgconfig for VAAPI
Set the minimum version to 0.35.0 (libva 1.3.0) and remove redundant
configure tests.  This also allows the proprietary libmfx fork of libva,
which always shows the version number 0.99.0 (independent of the actual
version).
2018-09-23 14:42:33 +01:00
James Almer
98518e90aa avcodec: add missing mpegvideo dependencies to SpeedHQ decoder
Signed-off-by: James Almer <jamrial@gmail.com>
2018-09-15 12:35:16 -03:00
James Almer
6304268e39 configure: add missing avcodec dependency to avfilter when bm3d filter is enabled
Signed-off-by: James Almer <jamrial@gmail.com>
2018-09-14 21:17:04 -03:00
Paul B Mahol
0ac937f80d configure: bm3d filter depends on dct in avcodec 2018-09-13 11:27:20 +02:00
hwren
85a921f461 lavc, doc, configure: add libxavs2 video encoder wrapper
Signed-off-by: hwren <hwrenx@126.com>
2018-09-11 21:48:42 +01:00
Roman Arzumanyan
90ba17652a avfilter: add nvidia NPP based transpose filter
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2018-09-10 12:11:41 +02:00
Devin Heitmueller
8732dfa995 avdevice/decklink: Add support for EIA-708 output over SDI
Hook in libklvanc and use it for output of EIA-708 captions over
SDI.  The bulk of this patch is just general support for ancillary
data for the Decklink SDI module - the real work for construction
of the EIA-708 CDP and VANC line construction is done by libklvanc.

Libklvanc can be found at: https://github.com/stoth68000/libklvanc

Updated to reflect feedback from Marton Balint <cus@passwd.hu>,
Carl Eugen Hoyos <ceffmpeg@gmail.com>, Aaron Levinson
<alevinsn_dev@levland.net>, and Moritz Barsnick <barsnick@gmx.net>

Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-09 22:42:26 +02:00
Paul B Mahol
a5278b672a avcodec: add RemotelyAnywhere Screen Capture decoder 2018-09-08 15:59:10 +02:00
James Almer
ce265b0bf5 Merge commit '39f3b6f3fc2b46b405b680cce3599f1b370e342d'
* commit '39f3b6f3fc2b46b405b680cce3599f1b370e342d':
  configure: Move add_fooflags() helper functions into canonical order

Merged-by: James Almer <jamrial@gmail.com>
2018-09-02 17:35:51 -03:00
James Almer
9a88a47be4 Merge commit '5691c746cf62e69806aae1baf0a6e8252d519444'
* commit '5691c746cf62e69806aae1baf0a6e8252d519444':
  configure: Group toolchain parameter mangling functions together

Merged-by: James Almer <jamrial@gmail.com>
2018-09-02 17:33:30 -03:00
James Almer
ce47f1589e Merge commit '5cb62f9d952e24fff62737a57e89cf43d9c2333a'
* commit '5cb62f9d952e24fff62737a57e89cf43d9c2333a':
  configure: Rename check_header() --> check_headers()

Merged-by: James Almer <jamrial@gmail.com>
2018-09-02 17:29:54 -03:00
James Almer
73d193d1d0 Merge commit '25c2a27c9ec0150210d75ee5ac8ed1bfa14c1a56'
* commit '25c2a27c9ec0150210d75ee5ac8ed1bfa14c1a56':
  configure: Make require_cc() and require_cpp_condition() functions consistent

Merged-by: James Almer <jamrial@gmail.com>
2018-09-02 17:18:58 -03:00
James Almer
41cd5af325 Merge commit '23be4eebf8aaa7519b12b2a49e5c5c6c4d076e6a'
* commit '23be4eebf8aaa7519b12b2a49e5c5c6c4d076e6a':
  build: Group external library protocols separately

Merged-by: James Almer <jamrial@gmail.com>
2018-09-02 16:50:45 -03:00
Marton Balint
1124df0397 avformat/libsrt: add pkt_size parameter to libsrt
Also make sure we set the URL context max packet size accordingly.

Based on a patch by Tudor Suciu <tudor.suciu@gmail.com>

Signed-off-by: Marton Balint <cus@passwd.hu>
2018-09-01 21:57:59 +02:00
Avi Halachmi (:avih)
09e49a8fb0 configure: <fflib>_deps: validate, reduce sensitivity
- Allow to add deps in any order rather than "in linking order".
- Expand deps chains as required rather than just once.
- Validate that there are no cycles.
- Validate that [after expansion] deps are limited to other fflibs.
- Remove expectation for a specific output order of unique().

Previously when adding items to <fflib>_deps, developers were
required to add them in linking order. This can be awkward and
bug-prone, especially when a list is not empty, e.g. when adding
conditional deps.

It also implicitly expected unique() to keep the last instance of
recurring items such that these lists maintain their linking order
after removing duplicate items.

This patch mainly allows to add deps in any order by keeping just
one master list in linking order, and then reordering all the
<fflib>_deps lists to align with the master list order.

This master list is LIBRARY_LIST itself, where otherwise its order
doesn't matter.

The patch also removes a limit where these deps lists were expanded
only once. This could have resulted in incomplete expanded lists,
or forcing devs to add already-deducable deps to avoid this issue.

Note: it is possible to deduce the master list order automatically
from the deps lists, but in this case it's probably not worth the
added complexity, even if minor. Maintaining one list should be OK.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-08-31 01:44:03 +02:00
Shiyou Yin
e13e52fd0d configure: [loongson] revert no-expensive-optimizations
Add gcc version check before add -fno-expensive-optimizations flag.
Only when gcc version is lower than 5.3.0, this flag is needed.
More bug info see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67736
https://gcc.gnu.org/ml/gcc-patches/2012-05/msg00401.html

Signed-off-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-08-27 23:30:54 +02:00
Paul B Mahol
ad2ac1e7dd avcodec: add WinCAM Motion Video decoder 2018-08-27 22:06:19 +02:00
Paul B Mahol
f7d749e95b avcodec: add MatchWare Screen Capture Codec 2018-08-27 22:06:19 +02:00
Avi Halachmi (:avih)
45499e557c configure: speed up check_deps()
x4 - x25 faster.

check_deps() recursively enables/disables components, and its loop is
iterated nearly 6000 times. It's particularly slow in bash - currently
consuming more than 50% of configure runtime, and about 20% with other
shells.

This commit applies few local optimizations, most effective first:
- Use $1 $2 ... instead of pushvar/popvar, and same at enable_deep*
- Abort early in one notable case - empty deps, to avoid costly no-op.
- Smaller changes which do add up:
  - Handle ${cfg}_checking locally instead of via enable[d]/disable
  - ${cfg}_checking: test done before inprogress - x2 faster in 50%+
  - one eval instead of several at the empty-deps early abort path.

- The "actual work" part is unmodified - just its surroundings.

Biggest speedups (relative and absolute) are observed with bash.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Tested-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
Tested-by: Dave Yeo <daveryeo@telus.net>
Tested-by: Reino Wijnsma <rwijnsma@xs4all.nl>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-08-27 11:34:10 -03:00
Avi Halachmi (:avih)
923586a58f configure: speed up print_enabled_components()
x4 - x10 faster.

Inside print_enabled components, the filter_list case invokes sed
about 350 times to parse the same source file and extract different
info for each arg. This is never instant, and on systems where fork is
slow (notably MSYS2/Cygwin on windows) it takes many seconds.

Change it to use sed once on the source file and set env vars with the
parse results, then use these results inside the loop.

Additionally, the cases of indev_list and outdev_list are very
infrequent, but nevertheless they're faster, and arguably cleaner, with
shell parameter substitutions than with command substitutions.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Tested-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
Tested-by: Dave Yeo <daveryeo@telus.net>
Tested-by: Reino Wijnsma <rwijnsma@xs4all.nl>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-08-27 11:34:10 -03:00
Avi Halachmi (:avih)
58b81ac621 configure: speed up flatten_extralibs_wrapper()
x50 - x200 faster.

Currently configure spends 50-70% of its runtime inside a single
function: flatten_extralibs[_wrapper] - which does string processing.

During its run, nearly 20K command substitutions (subshells) are used,
including its callees unique() and resolve(), which is the reason
for its lengthy run.

This commit avoids all subshells during its execution, speeding it up
by about two orders of magnitude, and reducing the overall configure
runtime by 50-70% .

resolve() is rewritten to avoid subshells, and in unique() and
flatten_extralibs() we "inline" the filter[_out] functionality.

Note that logically, "unique" functionality has more than one possible
output (depending on which of the recurring items is kept). As it
turns out, other parts expect the last recurring item to be kept
(which was the original behavior of uniqie()). This patch preservs
its output order.

Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Tested-by: Helmut K. C. Tessarek <tessarek@evermeet.cx>
Tested-by: Dave Yeo <daveryeo@telus.net>
Tested-by: Reino Wijnsma <rwijnsma@xs4all.nl>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-08-27 11:34:09 -03:00
Michael Niedermayer
4251a44e7d configure: do not add fsanitize cflags with ossfuzz if coverage is tested
Found-by: Max Moroz
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-08-23 16:00:26 +02:00
James Almer
728760de35 Revert "avcodec/libaomdec: auto insert dump_extra bitstream filter"
This reverts commit e45ed15594.

The Matroska spec was updated to not remove Sequence Header OBUs from key
frames, so this is no longer needed.
2018-08-17 15:17:59 -03:00
Danil Iashchenko
5423fe29da lavfi: add erosion_opencl, dilation_opencl filters
Add erosion_opencl, dilation_opencl filters. Behave like existing erosion and dilation filters.
2018-08-12 21:52:06 +01:00
Kyle Swanson
87cc7e8d4e lavfi/vf_libvmaf: update to use libvmaf v1.3.9
Signed-off-by: Kyle Swanson <kswanson@netflix.com>
2018-08-10 12:00:12 -07:00
James Almer
e45ed15594 avcodec/libaomdec: auto insert dump_extra bitstream filter
Some containers, like Matroska, may propagate key frames with no Sequence
Header OBU since it's provided in extradata instead.
With this change, the Sequence Header will be appended to the packet data
before calling aom_codec_decode().

Signed-off-by: James Almer <jamrial@gmail.com>
2018-08-02 12:41:05 -03:00
James Almer
269daf5985 configure: add missing aandcttables dependency to asv1 and asv2 encoders
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-29 21:30:00 -03:00
James Almer
c38b9c2bf7 configure: add missing aandcttables dependency to mpegvideoenc
Also remove the superfluous aandcttables dependency from all the modules
that only need it because of mpegvideoenc

Fixes ticket #7333

Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-29 21:29:13 -03:00
hwren
5985a1bf72 lavc, doc, configure: add avs2 video decoder wrapper
Tested-by: Steven Liu <lq@chinaffmpeg.org>
Signed-off-by: hwren <hwrenx@126.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2018-07-27 20:07:56 +08:00
Carl Eugen Hoyos
d01d46ad86 configure: Force pie for Android.
Position-independent executables are required since Lollipop.

Reported-by: Mohammed Bey Ahmed Khernache
2018-07-25 20:43:02 +02:00
James Almer
3735d55af3 avcodec/parser: move parsers list and related API to its own file
And add it to the CONFIGURABLE_COMPONENTS list in Makefile. This way, changes
to the new file will be tracked and the usual warning to suggest re-running
configure will be shown.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-21 16:08:29 -03:00
James Almer
a754af942a avcodec/libaomenc: export Sequence Header and Metadata OBUs as extradata
aom_codec_get_global_headers() is not implemented as of libaom 1.0.0 for AV1, so
we're forced to extract the relevant header OBUs from the first packet and propagate
them as packet side data.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-20 11:43:25 -03:00
Stephen Seo
0ea20124b7 Add lensfun filter
Lensfun is a library that applies lens correction to an image using a
database of cameras/lenses (you provide the camera and lens models, and
it uses the corresponding database entry's parameters to apply lens
correction). It is licensed under LGPL3.

The lensfun filter utilizes the lensfun library to apply lens
correction to videos as well as images.

This filter was created out of necessity since I wanted to apply lens
correction to a video and the lenscorrection filter did not work for me.

While this filter requires little info from the user to apply lens
correction, the flaw is that lensfun is intended to be used on indvidual
images. When used on a video, the parameters such as focal length is
constant, so lens correction may fail on videos where the camera's focal
length changes (zooming in or out via zoom lens). To use this filter
correctly on videos where such parameters change, timeline editing may
be used since this filter supports it.

Note that valgrind shows a small memory leak which is not from this
filter but from the lensfun library (memory is allocated when loading
the lensfun database but it somehow isn't deallocated even during
cleanup; it is briefly created in the init function of the filter, and
destroyed before the init function returns). This may have been fixed by
the latest commit in the lensfun repository; the current latest release
of lensfun is almost 3 years ago.

Bi-Linear interpolation is used by default as lanczos interpolation
shows more artifacts in the corrected image in my tests.

The lanczos interpolation is derived from lenstool's implementation of
lanczos interpolation. Lenstool is an app within the lensfun repository
which is licensed under GPL3.

v2 of this patch fixes license notice in libavfilter/vf_lensfun.c

v3 of this patch fixes code style and dependency to gplv3 (thanks to
Paul B Mahol for pointing out the mentioned issues).

v4 of this patch fixes more code style issues that were missed in
v3.

v5 of this patch adds line breaks to some of the documentation in
doc/filters.texi (thanks to Gyan Doshi for pointing out the issue).

v6 of this patch fixes more problems (thanks to Moritz Barsnick for
pointing them out).

v7 of this patch fixes use of sqrt() (changed to sqrtf(); thanks to
Moritz Barsnick for pointing this out). Also should be rebased off of
latest master branch commits at this point.

Signed-off-by: Stephen Seo <seo.disparate@gmail.com>
2018-07-15 10:07:54 +02:00
Carl Eugen Hoyos
a2317556ef configure: toolchain-tsan does not need -fPIE.
Fixes compilation with some kernel-gcc combinations:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67308

Reported and analyzed by Gonzalo Garramuño.
2018-07-06 00:41:59 +02:00
Rostislav Pehlivanov
755e618399 lavc: implement an ATRAC9 decoder
This commit implements a full ATRAC9 decoder, a simple low-delay codec
developed by Sony and used in most PSVita games, some PS3 games and some
PS4 games. Its similar to AAC in that it uses Huffman coded scalefactors
but instead of vector quantization it just Huffman codes the spectral
coefficients (in a way similar to how Opus splits band energy coding
into coarse and fine precision). It opts to write rather large Huffman
codes by packing several small coefficients into one Huffman coded
symbol, though I don't believe this increases efficiency at all.
Band extension implements SBC in a simple way, first it mirrors the
lower spectrum onto the higher frequencies and then it uses one of 5
filters to shape it. Noise substitution is implemented via 2 of them.
Unlike previous ATRAC codecs, there's no QMF, this is a standard MDCT
codec.

Based off of the reverse engineering work of Alex Barney.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2018-07-03 20:15:01 +01:00
James Almer
3c4af577aa configure: add missing swscale to avfilter when sr filter is enabled
Signed-off-by: James Almer <jamrial@gmail.com>
2018-07-02 22:18:47 -03:00
Danil Iashchenko
581bafa83b lavfi: add sobel, prewitt, roberts filters
Add opencl version of sobel, prewitt, roberts filters.
2018-07-03 00:11:28 +01:00
Sergey Lavrushkin
575b718990 Adds ESPCN super resolution filter merged with SRCNN filter.
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2018-07-02 10:47:14 -03:00
John Cox
52fd2afce8 configure: fix inline asm checks
Commit 8c893aa3cd removed quotes that were required to detect
inline asm:

check_insn armv5te qadd r0, r0, r0
.../test.c:1:34: error: expected string literal in 'asm'
void foo(void){ __asm__ volatile(qadd r0, r0, r0); }

The correct code is:

void foo(void){ __asm__ volatile("qadd r0, r0, r0"); }

Commit message written by Frank Liberato <liberato@chromium.org>

Signed-off-by: Martin Storsjö <martin@martin.st>
2018-06-29 13:43:28 +03:00
Jun Zhao
2730a0fdf4 configure: fix check for opencl_vaapi_intel_media.
opencl_vaapi_intel_media doesn't depend on libmfx, OpenCL™ Drivers
and Runtimes for Intel® Architectureis is a standalone release, more
information can be found in the link:
https://software.intel.com/en-us/articles/opencl-drivers.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
2018-06-29 05:17:36 +08:00
James Almer
a0ac49e38e configure: bump minimum required version of libaom
Version 1.0.0 is the first release after the bitstream freeze.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-06-25 16:04:32 -03:00
Ruiling Song
8b8b0e2cd2 lavfi: add opencl tonemap filter
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>
2018-06-21 01:19:18 +01:00
Danil Iashchenko
714da1fd89 lavfi: Add boxblur_opencl filter
Behaves like existing boxblur filter.
2018-06-21 00:31:42 +01:00
Timo Rothenpieler
6129b13dad configure: simplify ffnvcodec version logic 2018-06-15 11:18:47 +02:00
Carl Eugen Hoyos
9461e7d3a5 configure: The eac3_core bitstream filter needs the ac3 parser.
Fixes linking with "--disable-everything --enable-bsf=eac3_core".
2018-06-13 12:01:04 +02:00
Jun Zhao
3769aafb7c configure: fix check for opencl
add pkg-config support for opencl check.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
2018-06-07 19:38:58 +08:00
John Cox
ad94f1c8ab configure: fix arm inline asm checks
Commit 8c893aa3cd removed quotes that were required to detect
inline asm in clang:

check_insn armv5te qadd r0, r0, r0
.../test.c:1:34: error: expected string literal in 'asm'
void foo(void){ __asm__ volatile(qadd r0, r0, r0); }

The correct code is:

void foo(void){ __asm__ volatile("qadd r0, r0, r0"); }

Commit message written by Frank Liberato <liberato@chromium.org>

Signed-off-by: James Almer <jamrial@gmail.com>
2018-06-06 10:38:01 -03:00
Sergey Lavrushkin
d8c0bbb0aa Adds TensorFlow backend for dnn inference module.
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2018-06-05 10:16:50 -03:00
Sven Dueking
a507af97ee avformat/libsrt: add latency options and deprecate tspbdelay
Signed-off-by: Sven Dueking <sven.dueking@nablet.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2018-06-04 18:47:48 +02:00
Michael Niedermayer
1386a199f9 configure: Omit fsanitize flags if they are already specified by the user
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-05-27 21:38:33 +02:00
Reino Wijnsma
0263c52f4d configure: fix check for mbedtls
Add missing libraries needed when linking with a static build of MbedTLS.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-05-27 16:18:18 -03:00
Thomas Volkert
c24d247e2c libavformat: add mbedTLS based TLS
Signed-off-by: James Almer <jamrial@gmail.com>
2018-05-21 19:43:04 -03:00
Rostislav Pehlivanov
ce943dd6ac configure: error out on unsupported MSVC versions
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>
2018-05-18 02:22:57 +01:00
Carl Eugen Hoyos
20b8807622 configure: Mention the dash demuxer in the libxml2 help text. 2018-05-14 21:00:26 +02:00
Reino Wijnsma
1548d2a5a5 configure: add pkg-config check for libmysofa
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.
2018-05-14 17:26:23 +02:00
Niklas Haas
32234e03a7 configure: fix configure check for lilv-0
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`.
2018-05-13 18:55:43 +03:00
Paul B Mahol
974eb4aaaa avfilter: add fftdnoiz filter
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-05-10 14:44:17 +02:00
Timo Rothenpieler
c855683427 avutil/hwcontext_cuda: add CUstream in cuda hwctx 2018-05-10 00:34:22 +02:00
Hendrik Leppkes
8007a86363 lavfi/vf_srcnn: use avio_check instead of access
The filter uses avio for file access already, and avio_check is
portable.

Fixes trac #7192.
2018-05-08 17:52:33 +02:00
James Almer
0736f32a4f configure: fix and simplify xlib check
Signed-off-by: James Almer <jamrial@gmail.com>
2018-05-06 20:46:32 -03:00
James Almer
652b857b94 configure: add missing dependencies to vf_srcnn
The access dependecy is temporary and should fix compilation with
msvc until a proper fix is committed.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-05-06 17:23:29 -03:00
Jan Ekström
8d1263fa19 configure: add pkg-config check for zlib
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.
2018-05-06 20:47:42 +03:00
wm4
7074a7ccd9 avformat: add vapoursynth wrapper
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.
2018-05-04 17:56:35 +02:00
Mark Thompson
308b989e0c lavc: Add VP9 metadata bitstream filter
Can adjust the colour information.
2018-05-02 01:21:40 +01:00
Mark Thompson
b5df289eb7 lavc: Add coded bitstream read/write support for VP9 2018-05-02 01:21:33 +01:00
James Almer
cae6f806a6 configure: add missing pthreads dependency to v4l2_m2m
Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-29 15:04:10 -03:00
Paul B Mahol
0b360cae1c make swresample optional for ffmpeg
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2018-04-25 12:38:03 +02:00
Diego Biurrun
ad5bbc4086 configure: Rename require_header() --> require_headers()
This renaming was overlooked in the previous check_header() rename.
2018-04-25 12:24:24 +02:00
Thomas Volkert
4130e05ff4 libavformat: add mbedTLS based TLS
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2018-04-25 10:34:12 +02:00
Rostislav Pehlivanov
4ac0ff8ec2 Revert "libavformat: add mbedTLS based TLS"
This reverts commit 62f5c9d68b,
which was pushed a bit prematurely.
2018-04-23 20:29:02 +01:00
Thomas Volkert
62f5c9d68b libavformat: add mbedTLS based TLS 2018-04-23 20:48:11 +02:00
Diego Biurrun
39f3b6f3fc configure: Move add_fooflags() helper functions into canonical order 2018-04-20 12:00:11 +02:00
Diego Biurrun
5691c746cf configure: Group toolchain parameter mangling functions together 2018-04-20 12:00:11 +02:00
Diego Biurrun
5cb62f9d95 configure: Rename check_header() --> check_headers()
The plural in the name clarifies the fact that the function
can check for multiple headers at once.
2018-04-20 12:00:11 +02:00
Diego Biurrun
25c2a27c9e configure: Make require_cc() and require_cpp_condition() functions consistent
Their API and implementation is different from other require_foo() functions,
which violates the rule of least astonishment.
2018-04-20 12:00:11 +02:00
Diego Biurrun
23be4eebf8 build: Group external library protocols separately 2018-04-20 12:00:10 +02:00
Hendrik Leppkes
638575cd0b configure: fix clang-cl check in the MSVC section
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.
2018-04-19 09:57:11 +02:00
Steve Lhomme
abf806f7f1 random_seed: use bcrypt instead of the old wincrypt API
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>
2018-04-19 10:54:26 +03:00
Timo Rothenpieler
b3b3a3e3ce configure: add nvcc to CMDLINE_SET
This was somehow forgotten and nobody noticed until now.
2018-04-16 22:35:26 +02:00
James Almer
c04609eefc configure: extend the check for bcrypt
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>
2018-04-16 10:20:46 -03:00
Alexander Bilyak
9fd11e5188 configure: fix clang-cl detection
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>
2018-04-15 17:37:00 +02:00
Steve Lhomme
aedbf1640c avutil/random_seed: use bcrypt instead of the old wincrypt API
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>
2018-04-14 18:31:25 -03:00
Michael Niedermayer
876f9ac9a6 configure: make the C11 atomics check more robust
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>
2018-04-13 11:08:17 -03:00
James Almer
e7a2f1f8d8 configure: disable direct stripping in OpenBSD
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>
2018-04-13 11:01:29 -03:00
Carl Eugen Hoyos
b5c877a554 configure: Disable direct stripping for AIX.
AIX strip doesn't know the option -o.
2018-04-12 02:30:21 +02:00
James Almer
aea610b0d6 configure: check for INIT_ONCE before enabling w32threads
Should fix compilation wiht some old mingw-w64 builds that
don't seem to define it.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-10 20:45:17 -03:00
James Almer
234a5e0831 configure: check that the required header for Linux Perf is available
Should fix compilation on targets like some old Android NDK versions.

Signed-off-by: James Almer <jamrial@gmail.com>
2018-04-10 20:43:25 -03:00
wm4
c7ab6aff66 w32pthreads: always use Vista+ API, drop XP support
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>
2018-04-09 21:58:39 +02:00
Michael Niedermayer
8247e0304e configure: fix build
regression since 8f1382f80e
2018-04-01 02:58:42 +02:00
Josh de Kock
65452bcd64 lavd: remove linked lists
Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-03-31 23:26:31 +01:00
Josh de Kock
d8ae40611b Revert "lavd: add new API for iterating input and output devices"
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>
2018-03-31 23:26:31 +01:00
Josh de Kock
8f1382f80e lavfi: add new iteration API
Signed-off-by: Josh de Kock <josh@itanimul.li>
2018-03-31 23:26:30 +01:00