summaryrefslogtreecommitdiff
path: root/configure
Commit message (Collapse)AuthorAge
* configure: don't warn deprecated symbols from libvplHaihao Xiang2023-12-05
| | | | | | | | | | | libvpl deprecated some symbols (e.g. MFX_EXTBUFF_VPP_DENOISE2 is used to replace MFX_EXTBUFF_VPP_DENOISE), however the new symbols aren't support by MediaSDK runtime. In order to support the combination of libvpl and MediaSDK runtime on legacy devices, we continue to use the deprecated symbols in FFmpeg. This patch added -DMFX_DEPRECATED_OFF to CFLAGS to silence the corresponding compilation warnings. Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* avcodec/evc_decoder: Provided support for EVC decoderDawid Kozinski2023-11-20
| | | | | | | | | - Added EVC decoder wrapper - Changes in project configuration file and libavcodec Makefile - Added documentation for xevd wrapper Signed-off-by: Dawid Kozinski <d.kozinski@samsung.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/evc_encoder: Provided support for EVC encoderDawid Kozinski2023-11-20
| | | | | | | | | - Added EVC encoder wrapper - Changes in project configuration file and libavcodec Makefile - Added documentation for xeve wrapper Signed-off-by: Dawid Kozinski <d.kozinski@samsung.com> Signed-off-by: James Almer <jamrial@gmail.com>
* riscv: set fast half-precision conversionRémi Denis-Courmont2023-11-19
| | | | | | | | This is only supported at compilation time. If Zfhmin is supported, then conversions are fast, which is what the flag is used for. At this time, run-tiem detection is not possible, as in not supported by Linux. But even if it were, the current FFmpeg approach seems unable to deal with it (same problem as on x86, really).
* avcodec/cbs_vp8: Add support for VP8 codec bitstreamDai, Jianhui J2023-11-15
| | | | | | | | | | | | | | | | | | | | | | This commit adds support for VP8 bitstream read methods to the cbs codec. This enables the trace_headers bitstream filter to support VP8, in addition to AV1, H.264, H.265, and VP9. This can be useful for debugging VP8 stream issues. The CBS VP8 implements a simple VP8 boolean decoder using GetBitContext to read the bitstream. Only the read methods `read_unit` and `split_fragment` are implemented. The write methods `write_unit` and `assemble_fragment` return the error code AVERROR_PATCHWELCOME. This is because CBS VP8 write is unlikely to be used by any applications at the moment. The write methods can be added later if there is a real need for them. TESTS: ffmpeg -i fate-suite/vp8/frame_size_change.webm -vcodec copy -bsf:v trace_headers -f null - Signed-off-by: Jianhui Dai <jianhui.j.dai@intel.com> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* fftools/ffplay: add hwaccel decoding supportZhao Zhili2023-11-15
| | | | | | | | | | | | | | | | Add vulkan renderer via libplacebo. Simple usage: $ ffplay -hwaccel vulkan foo.mp4 Use cuda to vulkan map: $ ffplay -hwaccel cuda foo.mp4 Create vulkan instance by libplacebo, and enable debug: $ ffplay -hwaccel vulkan \ -vulkan_params create_by_placebo=1:debug=1 foo.mp4 Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec: LEAD MCMP decoderPeter Ross2023-11-08
| | | | | | | | | Partially fixes ticket #798 Reviewed-by: James Almer <jamrial@gmail.com> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Peter Ross <pross@xvid.org>
* configure: warn when threading is disabledAnton Khirnov2023-11-05
| | | | Explicitly state what the implications of this are.
* configure: fix _Pragma check.Reimar Döffinger2023-11-02
| | | | | | | | The test can currently pass when _Pragma is not supported, since _Pragma might be treated as a implicitly declared function. This happens e.g. with tinycc. Extending the check to 2 pragmas both matches the actual use better and avoids this misdetection.
* configure: Improve aarch64 feature detection on older, broken Clang versionsMartin Storsjö2023-10-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clang versions before 17 (Xcode versions up to and including 15.0) had a very annoying bug in its behaviour of the ".arch" directive in assembly. If the directive only contained a level, such as ".arch armv8.2-a", it did validate the name of the level, but it didn't apply the level to what instructions are allowed. The level was applied if the directive contained an extra feature enabled, such as ".arch armv8.2-a+crc" though. It was also applied on the next ".arch_extension" directive. This bug, combined with the fact that the same versions of Clang didn't support the dotprod/i8mm extension names in either ".arch <level>+<feature>" or in ".arch_extension", could lead to unexepcted build failures. As the dotprod/i8mm extensions couldn't be enabled dynamically via the ".arch_extension" directive, someone building ffmpeg could try to enable them by configuring their build with --extra-cflags="-march=armv8.6-a". During configure, we test for support for the i8mm instructions like this: # Built with -march=armv8.6-a .arch armv8.2-a # Has no visible effect here #.arch_extension i8mm # Omitted as the extension name isn't known usdot v0.4s, v0.16b, v0.16b # Successfully assembled as armv8.6-a is the effective level, # and i8mm is enabled implicitly in armv8.6-a. Thus, we would enable assembling those instructions. However if we later check for another extension, such as sve (which those versions of Clang actually do support), we can later run into the following situation when building actual code: # Built with -march=armv8.6-a .arch armv8.2-a # Has no visible effect here #.arch_extension i8mm # Omitted as the extension name isn't known .arch_extension sve # Included as "sve" is as supported extension name # .arch_extension effectively activates the previous .arch directive, # so the effective level is armv8.2-a+sve now. usdot v0.4s, v0.16b, v0.16b # Fails to build the instructions that require i8mm. Despite the # configure check, the unrelated ".arch_extension sve" directive # breaks the functionality of the i8mm feature. This patch avoids this situation: - By adding a dummy feature such as "+crc" on the .arch directive (if supported), we make sure that it does get applied immediately, avoiding it taking effect spuriously at a later unrelated ".arch_extension" directive. - By checking for higher arch levels such as armv8.4-a and armv8.6-a, we can assemble the dotprod and i8mm extensions without the user needing to pass -march=armv8.6-a. This allows using the dotprod/i8mm codepaths via runtime detection while keeping the binary runnable on older versions. I.e. this enables the i8mm codepaths on Apple M2 machines while built with Xcode's Clang. TL;DR: Enable the I8MM extensions for Apple M2 without the user needing to do a custom configuration; avoid potential build breakage if a user does such a custom configuration. Once Xcode versions that have these issues fixed are prevalent, we can consider reverting this change. Signed-off-by: Martin Storsjö <martin@martin.st>
* lavc/libaribcaption: add MSZ character related optionsTADANO Tokumei2023-10-29
| | | | | | | | | | | | | | | | | | | | | This patch adds two MSZ (Middle Size; half width) character related options, mapping against newly added upstream functionality: * `replace_msz_japanese`, which was introduced in version 1.0.1 of libaribcaption. * `replace_msz_glyph`, which was introduced in version 1.1.0 of libaribcaption. The latter option improves bitmap type rendering if specified fonts contain half-width glyphs (e.g., BIZ UDGothic), even if both ASCII and Japanese MSZ replacement options are set to false. As these options require newer versions of libaribcaption, the configure requirement has been bumped accordingly. Signed-off-by: TADANO Tokumei <aimingoff@pc.nifty.jp>
* aarch64: Stop using asm/hwcap.h for the HWCAP_* detectionMartin Storsjö2023-10-24
| | | | | | | Including sys/auxv.h should be enough (it pulls in bits/hwcap.h, which provides the same defines). Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec/librsvgdec: fix memory leaks and deprecated functionsLeo Izen2023-10-22
| | | | | | | | | | | | | At various points through the function librsvg_decode_frame, errors are returned from immediately without deallocating any allocated structs. This patch both fixes those leaks, and also fixes the use of functions that are deprecated since librsvg version 2.52.0. The older calls are still used, guarded by #ifdefs while the newer replacements are used if librsvg >= 2.52.0. One of the deprecated functions is used as a check for the configure shell script, so it was replaced with a different function. Signed-off-by: Leo Izen <leo.izen@gmail.com>
* avformat/mxfenc: fix static buildingMichael Riedl2023-10-17
| | | | | | MXF muxer requires rangecoder otherwise static linking fails. Signed-off-by: Michael Riedl <michael.riedl@nativewaves.com>
* configure: disable libglslang/libshaderc if the vulkan is disabledLynne2023-10-15
| | | | | Fixes build failures when the Vulkan headers are too old and libglslang or libshaderc are enabled.
* configure: improve libmfx deprecation warningLeo Izen2023-10-14
| | | | | | | | The libmfx deprecation warning tells you to build against libmfx 1.x, but the actual solution is to use --enable-libvpl instead of using --enable-libmfx. Update the warning message to reflect this. Signed-off-by: Leo Izen <leo.izen@gmail.com>
* avcodec/libkvazaar: Bump minimum version to 2.0.0John Mather2023-10-11
| | | | | | | | 0cd8769207f utilized the rc_algorithm member of the kvz_config struct, which was introduced in Kvazaar 2.0.0. This patch bumps the minimum version of Kvazaar to 2.0.0 so that FFmpeg compiles successfully. Signed-off-by: John Mather <johnmather@sidefx.com>
* configure: fix --custom-allocatorTimo Rothenpieler2023-10-09
| | | | | | | | The custom-allocator logic has been completely defunct since a while, since nothing depends on those targets, they never get used. This updates jemalloc to pkg-config, adds the fallback option for potential arbitrary allocators, and finally actually adds the libraries to LDFLAGS.
* avcodec: Remove DCT, FFT, MDCT and RDFTAndreas Rheinhardt2023-10-01
| | | | | | | | | | | | | They were replaced by TX from libavutil; the tremendous work to get to this point (both creating TX as well as porting the users of the components removed in this commit) was completely performed by Lynne alone. Removing the subsystems from configure may break some command lines, because the --disable-fft etc. options are no longer recognized. Co-authored-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/mpegaudiodsp: Init dct32 directlyAndreas Rheinhardt2023-10-01
| | | | | | This avoids using dct.c and will allow removing it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Remove unnecessary vf_spp->fft dependencyAndreas Rheinhardt2023-09-29
| | | | | | | | The AVDCT API used by this filter does in no way depend upon the FFT subsystem. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Remove obsolete ffplay->rdft dependencyAndreas Rheinhardt2023-09-29
| | | | | | | Forgotten in 4acd08be6c4f39736179a3d90fd56b508e42ff6d. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Remove obsolete wmavoice->rdft,dct dependenciesAndreas Rheinhardt2023-09-29
| | | | | | | Forgotten in a810126501e1ef0992d765720ff0d2629c5d1616. Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/snow: Move initializing HpelDSPContext to snowenc.cAndreas Rheinhardt2023-09-29
| | | | | | Only used by the encoder. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/hwcontext_cuda: add option to use current device contextRoman Arzumanyan2023-09-28
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avfilter: add libvmaf_cudaKyle Swanson2023-09-27
| | | | Signed-off-by: Kyle Swanson <kswanson@netflix.com>
* lavc/vaapi_encode: Add VAAPI AV1 encoderFei Wang2023-09-22
| | | | | Signed-off-by: Fei Wang <fei.w.wang@intel.com> Acked-by: Neal Gompa <ngompa13@gmail.com>
* configure: rework parsing --cpu arguments to support all features unless ↵James Almer2023-09-19
| | | | | | | | | | | | | | | blacklisted Keeping an ever growing list of CPUs just to pass -march to the compiler and enable fast_cmov is a waste of time. Every CPU we know has limitations is already handled here, so just fallback to enabling everything when a passed in argument is not one of those. This will enable optimizations for CPU architectures released in the past 7 or so years with supported GCC and clang compilers when used as argument in configure, instead of silently ignoring them. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/libssh: avoid deprecated functionsLeo Izen2023-09-18
| | | | | | | | Avoid using the deprecated functions ssh_try_publickey_from_file among others in favor of symbols introduced in libssh 0.6.0 (Jan 2014) and update configure to require this version. Signed-off-by: Leo Izen <leo.izen@gmail.com>
* vulkan: enable VK_KHR_cooperative_matrixLynne2023-08-26
| | | | | It's of interest to API users, and of interest to us, as a DCT/DST can be implemented via matrix multiplies.
* lavfi/dnn: Add OpenVINO API 2.0 supportWenbin Chen2023-08-26
| | | | | | | | | | | | OpenVINO API 2.0 was released in March 2022, which introduced new features. This commit implements current OpenVINO features with new 2.0 APIs. And will add other features in API 2.0. Please add installation path, which include openvino.pc, to PKG_CONFIG_PATH mannually for new OpenVINO libs config. Signed-off-by: Ting Fu <ting.fu@intel.com> Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
* configure: Include objbase.h when checking for CoTaskMemFreeMartin Storsjö2023-08-21
| | | | | | | | | | | | | ddc1cd5cdd2570bf3d6ab807ee0ecfacdf09431d defined WIN32_LEAN_AND_MEAN globally, which makes for much fewer transitive includes from windows.h. With that define, CoTaskMemFree no longer gets implicitly declared by just including windows.h, but one has to include the right header objbase.h too. That commit caused ole32 to no longer get detected, which caused dxva2 to no longer be enabled. This gets fixed by this patch. Signed-off-by: Martin Storsjö <martin@martin.st>
* configure: Set WIN32_LEAN_AND_MEAN at configure timeL. E. Segovia2023-08-14
| | | | | | | | | | | | | Including winsock2.h or windows.h without WIN32_LEAN_AND_MEAN cause bzlib.h to parse as nonsense, due to an instance of #define char small in rpcndr.h. See: https://stackoverflow.com/a/27794577 Signed-off-by: L. E. Segovia <amy@amyspark.me> Signed-off-by: Martin Storsjö <martin@martin.st>
* configure: use just the pkg-config for sndioBrad Smith2023-08-07
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/avcodec: Add FFHWAccel, hide internals of AVHWAccelAndreas Rheinhardt2023-08-07
| | | | | | | | | This commit is the AVHWAccel analogue of commit 20f972701806be20a77f808db332d9489343bb78: It moves the private fields of AVHWAccel to a new struct FFHWAccel extending AVHWAccel in an internal header (namely hwaccel_internal.h). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter: add transpose_vt for videotoolbox pix_fmtZhao Zhili2023-07-23
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avfilter: add scale_vt for videotoolbox pix_fmtZhao Zhili2023-07-23
| | | | | | | | | | | | | | | | | | | For example, ./ffmpeg -hwaccel videotoolbox \ -hwaccel_output_format videotoolbox_vld \ -i ios-265.mov \ -c:v hevc_videotoolbox \ -profile:v main \ -b:v 3M \ -vf scale_vt=w=iw/2:h=ih/2:color_matrix=bt709:color_primaries=bt709:color_transfer=bt709 \ -c:a copy \ -tag:v hvc1 \ /tmp/test.mp4 Input: hevc (Main 10) (hvc1 / 0x31637668), yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 3840x2160 Output: hevc (Main) (hvc1 / 0x31637668), yuv420p(tv, bt709, progressive), 1920x1080 Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* libavutil: Remove TOMI CPUKieran Kunhya2023-07-22
|
* configure: bump minimum AviSynth+ header versionStephen Hutchinson2023-07-19
| | | | | | | | AVISYNTH_INTERFACE_VERSION 10 fell in-between the releases of 3.7.2 and 3.7.3, and is required to be able to read the channel layout information. Signed-off-by: Stephen Hutchinson <qyot27@gmail.com>
* avformat/hlsenc: use av_random_bytes() for generating AES128 keyMarton Balint2023-07-16
| | | | | | | | | av_random_bytes() can use OS provided strong random functions and does not depend soley on openssl/gcrypt external libraries. Fixes ticket #10441. Signed-off-by: Marton Balint <cus@passwd.hu>
* aarch64: remove VFP feature checkRémi Denis-Courmont2023-07-15
| | | | | | | | | | | | | | | | This is not actually used for anything. The configure check causes the CPU feature flag to be set, but nothing consumes it at all. While AArch64 does have VFP, it is only used for the scalar C code. Conversely, it is still possible to disable VFP, by changing the C compiler flags as before (though that only makes sense for an hypothetical non-standard Armv8 platform without VFP). Note that this retains the "vfp" option flag, for backward compatibility and on the very remote but theoretically possible chance that FFmpeg actually makes use of it in the future. AV_CPU_FLAG_VFP is retained as it is actually used by AArch32.
* avutil: fix build failure on osx 10.4Pavel Koshevoy2023-07-08
| | | | | | | | | | | libavutil/random_seed.c calls arc4random_buf which is not available on OSX 10.4 Tiger, but the configuration script tests for arc4random which is available. Fix the configuration test to match the actual API used. Co-authored-by: James Almer <jamrial@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/random_seed: add support for gcrypt and OpenSSL as source of randomnessJames Almer2023-07-06
| | | | | Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec: add Metadata bsf for H266/VVCNuo Mi2023-06-29
| | | | | | Add H.266/VVC metadata bsf. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec: add bitstream parser for H266/VVCNuo Mi2023-06-29
| | | | | | | | Add nal parser ff_vvc_parser to parse vvc elementary bitstreams. Co-authored-by: Thomas Siedel <thomas.ff@spin-digital.com> Co-authored-by: James Almer <jamrial@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/cbs: add cbs implementation for H266/VVCNuo Mi2023-06-29
| | | | | | | | | | Add CodedBitstreamContext to parse VPS,SPS,PPS in VVC nal units. Implement parsing and writing of SPS,PPS,VPS,PH,AUD,SEI and slices. Add ff_cbs_type_h266 to cbs types tables and AV_CODEC_ID_H266 to cbs codec ids. Co-authored-by: Thomas Siedel <thomas.ff@spin-digital.com> Signed-off-by: James Almer <jamrial@gmail.com>
* amfenc: Update the min version to 1.4.29.0 for AMF SDK.Dmitrii Ovchinnikov2023-06-29
|
* avfilter/vf_drawtext: improve glyph shaping and positioningyethie2023-06-19
| | | | | | | | - text is now shaped using libharfbuz - glyphs position is now accurate to 1/4 pixel in both directions - the default line height is now the one defined in the font Adds libharfbuzz dependency.
* configure: fix evc related dependenciesJames Almer2023-06-17
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vf_bwdif_cuda: CUDA accelerated bwdif deinterlacerPhilip Langdale2023-06-16
| | | | | | | I've been sitting on this for 3 1/2 years now(!), and I finally got around to fixing the loose ends and convincing myself that it was correct. It follows the same basic structure as yadif_cuda, including leaving out the edge handling, to avoid expensive branching.