summaryrefslogtreecommitdiff
path: root/configure
Commit message (Collapse)AuthorAge
...
* avcodec/zmbv: Use ff_inflate_init/end()Andreas Rheinhardt2022-03-19
| | | | | | | Returns better error messages in case of error and deduplicates the inflateInit() code. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/zlib_wrapper: Add wrappers for zlib inflateInit, inflateEndAndreas Rheinhardt2022-03-19
| | | | | | | | | | | | | | | | | It is not documented to be safe to call inflateEnd() on a z_stream that has never been successfully been initialized by inflateInit(), but just zeroed. It just happens to work and several codecs rely on this (they have FF_CODEC_CAP_INIT_CLEANUP set and even call inflateEnd() when inflateInit() failed or has never been called). To avoid this, other codecs recorded whether their zstream has been initialized successfully or not. This commit adds wrappers for inflateInit() and inflateEnd() that do what these other codecs do; furthermore, they also take care of properly setting up the zstream before inflateInit() and emit an error message in case of error. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Use a separate config_components.h header for $ALL_COMPONENTSMartin Storsjö2022-03-16
| | | | | | | | This avoids unnecessary rebuilds of most source files if only the list of enabled components has changed, but not the other properties of the build, set in config.h. Signed-off-by: Martin Storsjö <martin@martin.st>
* configure: move ranlib -D test after setting defaultsAdrian Ratiu2022-03-11
| | | | | | | | | | | | | | | | | In Gentoo and ChromeOS we want to allow pure LLVM builds without using GNU tools, so we block any unwanted mixed GNU/LLVM usages (GNU tools are still kept around in our chroots for projects like glibc which cannot yet be built otherwise). The default ${cross_prefix}${ranlib_default} points to GNU and fails, so move the test a bit later - after the defaults are set and the proper values get overriden - such that ffmpeg configure calls the llvm-ranlib we desire. [1] [1] https://gitweb.gentoo.org/repo/gentoo.git/tree/media-video/ffmpeg/ffmpeg-4.4.1-r1.ebuild?id=7a34377e3277a6a0e2eedd40e90452a44c55f1e6#n477 Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* avutil/cpu: add AVX512 Icelake flagWu Jianhua2022-03-10
| | | | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com> Reviewed-by: Henrik Gramner <henrik@gramner.com> Signed-off-by: James Almer <jamrial@gmail.com>
* configure: Fix detecting/using getauxvalMartin Storsjö2022-03-04
| | | | | | | While trying to detect getauxval, this actually never output HAVE_GETAUXVAL into config.h before. Signed-off-by: Martin Storsjö <martin@martin.st>
* configure: stop allowing disabling lzoJames Almer2022-02-26
| | | | | | The module is now always compiled in. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libsvtav1: update some options and defaultsJames Almer2022-02-24
| | | | | | And bump the minimum required version to 0.9.0 Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/af_superequalizer: switch rdft to lavu/txPaul B Mahol2022-02-16
|
* lavc/mpeg*: drop the XvMC hwaccel codeAnton Khirnov2022-02-15
| | | | | XvMC was last relevant over 10 years ago, if ever. There is no reason to use it today.
* avfilter/vf_fftfilt: switch to rdft from lavu/txPaul B Mahol2022-02-14
|
* avfilter/vf_fftdnoiz: switch to fft from lavu/txPaul B Mahol2022-02-14
|
* configure: check avisynth header versionStephen Hutchinson2022-02-13
| | | | | | | | | | | | | | | The headers from version 3.7.1 are needed in order to support parsing of frame properties. avs/version.h has been generated as part of the AviSynth+ build process for a long time, but was never installed with the includes until version 3.7.1a. Checking for the presence of avs/version.h might have been sufficient, but a version check mechanism might be useful in the future. This does not change the version compatibility with the library itself; previous 3.x versions of AviSynth+ as well as AviSynth 2.6 can still be used with the demuxer. Signed-off-by: Stephen Hutchinson <qyot27@gmail.com>
* avcodec/qdmc: switch to fft from lavu/txPaul B Mahol2022-02-12
|
* avfilter/af_surround: switch to rdft from avutil/txPaul B Mahol2022-02-12
|
* avfilter/af_atempo: switch to rdft from lavu/txPaul B Mahol2022-02-12
|
* avutil: use getauxval(3) for CPU capabilities on linux/android ARMAman Karmani2022-02-07
| | | | | | | | | | getauxval is marginally faster, and works even when procfs is not mounted support on Linux was added in glibc 2.16 support on Android was added in 4.4 (API 20) fixes #6578 Signed-off-by: Aman Karmani <aman@tmm1.net>
* avfilter/asrc_sinc: switch to rdft from lavu/txPaul B Mahol2022-02-06
|
* configure: afir filter no longer depends on rdft from avcodecPaul B Mahol2022-02-06
|
* configure: add libplacebo to help messageZhao Zhili2022-01-27
|
* avfilter/vf_libvmaf: update filter for libvmaf v2.0.0Kyle Swanson2022-01-23
|
* configure: link to libatomic when it's presentAnton Khirnov2022-01-21
| | | | | | | C11 atomics in some configurations (e.g. 64bit operations on ppc64 with GCC) require linking to libatomic. Fixes #9275
* avfilter: add overlay vaapi filterXinpeng Sun2022-01-17
| | | | | | | | | | | | | | | | | | | | | | | Overlay one video on the top of another. It takes two inputs and has one output. The first input is the "main" video on which the second input is overlaid. This filter requires same memory layout for all the inputs. An example command to use this filter to overlay overlay.mp4 at the top-left corner of the main.mp4: ffmpeg -init_hw_device vaapi=foo:/dev/dri/renderD128 \ -hwaccel vaapi -hwaccel_device foo -hwaccel_output_format vaapi -c:v h264 -i main.mp4 \ -hwaccel vaapi -hwaccel_device foo -hwaccel_output_format vaapi -c:v h264 -i overlay.mp4 \ -filter_complex "[0:v][1:v]overlay_vaapi=0:0:100:100:0.5[t1]" \ -map "[t1]" -an -c:v h264_vaapi -y out_vaapi.mp4 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com> Signed-off-by: Xinpeng Sun <xinpeng.sun@intel.com> Signed-off-by: Zachary Zhou <zachary.zhou@intel.com> Signed-off-by: Fei Wang <fei.w.wang@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* avformat/matroskaenc: Disable MKV-only code if MKV muxer is disabledAndreas Rheinhardt2022-01-08
| | | | | | | | The Matroska muxer has quite a lot of dependencies and lots of them are unnecessary for WebM. By disabling the Matroska-only code at compile time one can get rid of them. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Let decklink indev suggest libzvbiAndreas Rheinhardt2022-01-08
| | | | | | | | Fixes build errors if libzvbi is enabled while libzvbi_teletextdec is disabled. Reviewed-by: Marton Balint <cus@passwd.hu> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Add missing AMV muxer->riffenc dependencyAndreas Rheinhardt2022-01-07
| | | | | Reviewed-by: Zane van Iperen <zane@zanevaniperen.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Add missing libshine->mpegaudioheader dependencyAndreas Rheinhardt2022-01-06
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter: add a blend_vulkan filterWu Jianhua2022-01-05
| | | | | | | | | | | | | | | | | | | | | This commit adds a blend_vulkan filter and a normal blend mode, and reserves support for introducing the blend modes in the future. Use the commands below to test: (href: https://trac.ffmpeg.org/wiki/Blend) I. make an image for test ffmpeg -f lavfi -i color=s=256x256,geq=r='H-1-Y':g='H-1-Y':b='H-1-Y' -frames 1 \ -y -pix_fmt yuv420p test.jpg II. blend in sw ffmpeg -i test.jpg -vf "split[a][b];[b]transpose[b];[a][b]blend=all_mode=normal,\ pseudocolor=preset=turbo" -y normal_sw.jpg III. blend in vulkan ffmpeg -init_hw_device vulkan -i test.jpg -vf "split[a][b];[b]transpose[b];\ [a]hwupload[a];[b]hwupload[b];[a][b]blend_vulkan=all_mode=normal,hwdownload,\ format=yuv420p,pseudocolor=preset=turbo" -y normal_vulkan.jpg Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* lavfi/libplacebo: support dovi metadata applicationNiklas Haas2022-01-05
| | | | | | | | | | | | | libplacebo supports automatic dolby vision application, but it requires us to switch to a new API. Also add some logic to strip the dolby vision metadata from the output frames in any case where we end up changing the colorimetry. The libplacebo dependency bump is justified because neither 184 nor 192 are part of any stable libplacebo release, so users have to build from git anyways for this filter to exist. Signed-off-by: Niklas Haas <git@haasn.dev>
* configure: Remove mpegvideo dependency on me_cmpAndreas Rheinhardt2022-01-04
| | | | | | | | Forgotten in cf1e0786ed64e69614760bfb4ecd7adbde8e6094. (Both mpegvideodec as well as mpegvideoenc use me_cmp, so this doesn't affect them.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Add new mpegvideodec CONFIG_EXTRAAndreas Rheinhardt2022-01-04
| | | | | | | | | | | | This allows to remove the spurious dependencies of mpegvideo encoders on error_resilience; some other components that do not use mpegvideo to its fullest turned out to not need it either. Adding a new CONFIG_EXTRA needs a reconfigure to take effect. In order to force this a few unnecessary headers from lavfi/allfilters.c have been removed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure, avcodec/Makefile: Add new mpeg4audio CONFIG_EXTRA groupAndreas Rheinhardt2022-01-04
| | | | | | | | | | | | | | | This group is mainly for the users of *_mpeg4audio_get_config2(); it is not for those who only use avpriv_mpeg4audio_sample_rates. This is in preparation for splitting the latter into a file of its own; if there were no CONFIG_EXTRA group for *_mpeg4audio_get_config2() users, one would have to add a dependency to the new file for all these users on top of the existing dependency on mpeg4audio.o. Adding a new CONFIG_EXTRA group only takes effect after a reconfigure; so in order to force a reconfigure some unnecessary headers from libavdevice/alldevices.c have been removed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/jpegtables: Unavpriv MJPEG-tablesAndreas Rheinhardt2022-01-04
| | | | | | | | | | | | | | | | There are seven MJPEG-tables, five small (1x12, 4x17) and two not small (2x162). These are all avpriv, despite this not being worthwhile due to the overhead of exporting a symbol: The total overhead for each symbol consists of two entries in .dynsym (24B each), one entry in the importing library's .rela.dyn (24B) and one in .got (8B) as well as 2x2B for symbol versions and 4B for symbol hashes in the exporting library; in addition to that, the name of the symbol is included in both exporting and importing libraries, using 2x210 bytes in this case. (The above numbers are for a x64 Elf/Linux/GNU system. Other platforms will give different numbers.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavc/hevcdec: Parse DOVI RPU NALsNiklas Haas2022-01-04
| | | | | | | | | | | | | | | | And expose the parsed values as frame side data. Update FATE results to match. It's worth documenting that this relies on the dovi configuration record being present on the first AVPacket fed to the decoder, which in practice is the case if if the API user has called something like av_format_inject_global_side_data, which is unfortunately not the default. This commit is not the time and place to change that behavior, though. Signed-off-by: Niklas Haas <git@haasn.dev> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavc: Implement Dolby Vision RPU parsingNiklas Haas2022-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on a mixture of guesswork, partial documentation in patents, and reverse engineering of real-world samples. Confirmed working for all the samples I've thrown at it. Contains some annoying machinery to persist these values in between frames, which is needed in theory even though I've never actually seen a sample that relies on it in practice. May or may not work. Since the distinction matters greatly for parsing the color matrix values, this includes a small helper function to guess the right profile from the RPU itself in case the user has forgotten to forward the dovi configuration record to the decoder. (Which in practice, only ffmpeg.c and ffplay do..) Notable omissions / deviations: - CRC32 verification. This is based on the MPEG2 CRC32 type, which is similar to IEEE CRC32 but apparently different in subtle enough ways that I could not get it to pass verification no matter what parameters I fed to av_crc. It's possible the code needs some changes. - Linear interpolation support. Nothing documents this (beyond its existence) and no samples use it, so impossible to implement. - All of the extension metadata blocks, but these contain values that seem largely congruent with ST2094, HDR10, or other existing forms of side data, so I will defer parsing/attaching them to a future commit. - The patent describes a mechanism for predicting coefficients from previous RPUs, but the bit for the flag whether to use the prediction deltas or signal entirely new coefficients does not seem to be present in actual RPUs, so we ignore this subsystem entirely. - In the patent's spec, the NLQ subsystem also loops over num_nlq_pivots, but even in the patent the number is hard-coded to one iteration rather than signalled. So we only store one set of coefs. Heavily influenced by https://github.com/quietvoid/dovi_tool Documentation drawn from US Patent 10,701,399 B2 and ETSI GS CCM 001 Signed-off-by: Niklas Haas <git@haasn.dev> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Makefile: Redo duplicating object files in shared buildsAndreas Rheinhardt2022-01-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case of shared builds, some object files containing tables are currently duplicated into other libraries: log2_tab.c, golomb.c, reverse.c. The check for whether this is duplicated is simply whether CONFIG_SHARED is true. Yet this is crude: E.g. libavdevice includes reverse.c for shared builds, but only needs it for the decklink input device, which given that decklink is not enabled by default will be unused in most libavdevice.so. This commit changes this by making it more explicit about what to duplicate from other libraries. To do this, two new Makefile variables were added: SHLIBOBJS and STLIBOBJS. SHLIBOBJS contains the objects that are duplicated from other libraries in case of shared builds; STLIBOBJS contains stuff that a library has to provide for other libraries in case of static builds. These new variables provide a way to enable/disable with a finer granularity than just whether shared builds are enabled or not. E.g. lavd's Makefile now contains: SHLIBOBJS-$(CONFIG_DECKLINK_INDEV) += reverse.o Another example is provided by the golomb tables. These are provided by lavc for static builds, even if one uses a build configuration that makes only lavf use them. Therefore lavc's Makefile contains STLIBOBJS-$(CONFIG_MXF_MUXER) += golomb.o, whereas lavf's Makefile has a corresponding SHLIBOBJS-$(CONFIG_MXF_MUXER) += golomb_tab.o. E.g. in case the MXF muxer is the only component needing these tables only libavformat.so will contain them for shared builds; currently libavcodec.so does so, too. (There is currently a CONFIG_EXTRA group for golomb. But actually one would need two groups (golomb_avcodec and golomb_avformat) in order to know when and where to include these tables. Therefore this commit uses a Makefile-based approach for this and stops using these groups for the users in libavformat.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Make IMF demuxer require MXF demuxerAndreas Rheinhardt2022-01-03
| | | | | | | The former is useless without the latter. Reviewed-by: Zane van Iperen <zane@zanevaniperen.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: bump yearGyan Doshi2022-01-01
|
* avformat/imf: DemuxerPierre-Anthony Lemieux2021-12-31
| | | | | Signed-off-by: Pierre-Anthony Lemieux <pal@palemieux.com> Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
* configure: use pkg-config for sndioBrad Smith2021-12-23
|
* configure: test the metal compiler before usercombs2021-12-22
| | | | | | Apparently Metal.framework is included with the command line tools (and thus may be present without Xcode), but the Metal compiler is only included as part of Xcode.
* configure: ensure we use the macOS SDK's metal compiler by defaultrcombs2021-12-22
| | | | | Apparently on some OS and Xcode versions this can select an iOS SDK, which in turn may fail on the affected versions.
* configure: fix .d generation for C++ and Obj-C filesrcombs2021-12-22
|
* configure: fix setting OBJCCFLAGSrcombs2021-12-22
| | | | We call this OBJCFLAGS in help text, but common.mak looks for OBJCCFLAGS.
* lavc/videotoolboxenc: add ProRes supportrcombs2021-12-22
|
* configure: improve non-pkgconfig Vulkan version checkLynne2021-12-21
| | | | | | | | | Check for the patch version as well as the major+minor version. The VK_API_VERSION macros are not usable in preprocessor code due to casts. The patch (header) version is meant to linearly increment and not be reset, however it's better to trust, but verify.
* configure: autodetect vulkanLynne2021-12-21
|
* configure: fix metal detection and respect explicit disableAman Karmani2021-12-19
| | | | Signed-off-by: Aman Karmani <aman@tmm1.net>
* avfilter: add vf_yadif_videotoolboxAman Karmani2021-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | deinterlaces CVPixelBuffers, i.e. AV_PIX_FMT_VIDEOTOOLBOX frames for example, an interlaced mpeg2 video can be decoded by avcodec, uploaded into a CVPixelBuffer, deinterlaced by Metal, and then encoded to h264 by VideoToolbox as follows: ffmpeg \ -init_hw_device videotoolbox \ -i interlaced.ts \ -vf hwupload,yadif_videotoolbox \ -c:v h264_videotoolbox \ -b:v 2000k \ -c:a copy \ -y progressive.ts (note that uploading AVFrame into CVPixelBuffer via hwupload requires 504c60660d3194758823ddd45ceddb86e35d806f) this work is sponsored by Fancy Bits LLC Reviewed-by: Ridley Combs <rcombs@rcombs.me> Reviewed-by: Philip Langdale <philipl@overt.org> Signed-off-by: Aman Karmani <aman@tmm1.net>
* build: detect Metal.framework and build .metal filesAman Karmani2021-12-18
| | | | | Reviewed-by: Ridley Combs <rcombs@rcombs.me> Signed-off-by: Aman Karmani <aman@tmm1.net>