summaryrefslogtreecommitdiff
path: root/libavfilter
Commit message (Collapse)AuthorAge
* lavfi/metal: fix build with pre-10.11 deployment targetsrcombs2021-12-22
| | | | | | | | | | - Ensure the yadif .metal compiles when targeting any Metal runtime version - Use some preprocessor awkwardness to ensure Core Video's Metal-specific functionality is exposed regardless of our deployment target (this works around what seems to be an SDK header bug, filed as FB9816002) - Ensure all direct references to Metal functions and classes are gated behind runtime version checks (this satisfies clang's deployment-target violation warnings provided by -Wunguarded-availability).
* lavfi/metal: fix build on pre-10.15 SDKsrcombs2021-12-22
|
* lavfi/metal: don't use braced-include for internal headersrcombs2021-12-22
|
* tests/dnn: Make DNN tests regular libavfilter testsAndreas Rheinhardt2021-12-19
| | | | | | | | | | | | | | | | | They test libavfilter internal API, so they should be libavfilter test programs (which implies: linked statically to libavfilter to access internal APIs and linked normally (statically or dynamically depending upon the build configuration) against all the other libs). Right now, they are always linked statically against all libs, which is a significant size waste compared to shared libs as all of libavcodec has been pulled in despite not being really used. This also leads to linking failures on systems for which av_export_avutil is intended: libavcodec does not expect to be linked statically against the library providing avpriv_(cga|vga16)_font in this case. This is fixed by this commit. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* 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>
* avfilter: add metal utilitiesAman Karmani2021-12-18
| | | | | Reviewed-by: Ridley Combs <rcombs@rcombs.me> Signed-off-by: Aman Karmani <aman@tmm1.net>
* avfilter/vf_yadif_cuda: simplify filter definitionAman Karmani2021-12-18
| | | | | Signed-off-by: Aman Karmani <aman@tmm1.net> Signed-off-by: Philip Langdale <philipl@overt.org>
* lavfi/vf_libplacebo: update deprecated option nameNiklas Haas2021-12-15
| | | | | | | | This was renamed upstream quite a while ago (v3.112.0). Rename the option name as well for consistency (and expand the description just slightly). Signed-off-by: Niklas Haas <git@haasn.dev>
* vf_libplacebo: switch to newer libplacebo helpersNiklas Haas2021-12-15
| | | | | | | | | | | | | | | | | Support for mapping/unmapping hardware frames has been added into libplacebo itself, so we can scrap this code in favor of using the new functions. This has the additional benefit of being forwards-compatible as support for more complicated frame-related state management is added to libplacebo (e.g. mapping dolby vision metadata). It's worth pointing out that, technically, this would also allow `vf_libplacebo` to accept, practically unmodified, other frame types (e.g. vaapi or drm), or even software input formats. (Although we still need a vulkan *device* to be available) To keep things simple, though, retain the current restriction to vulkan frames. It's possible we could rethink this in a future commit, but for now I don't want to introduce any more potentially breaking changes.
* avfilter/af_astats: improve options descriptionsLimin Wang2021-12-14
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter: add audio dynamic equalizer filterPaul B Mahol2021-12-12
|
* avfilter/vf_transpose_vulkan: simplify config_props_output functionWu Jianhua2021-12-10
| | | | | | | It's no need to assign outlink here, which has been done in ff_vk_filter_config_output already. Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/vf_transpose_vulkan: add clock and cclock optionWu Jianhua2021-12-10
| | | | | | | | | | | | | | | | | | | | | | The following command is on how to apply cclock option: ffmpeg -init_hw_device vulkan -i input.264 -vf \ hwupload=extra_hw_frames=16,transpose_vulkan=dir=cclock,hwdownload,format=yuv420p \ output.264 The following command is on how to apply clock_flip option: ffmpeg -init_hw_device vulkan -i input.264 -vf \ hwupload=extra_hw_frames=16,transpose_vulkan=dir=clock_flip,hwdownload,format=yuv420p \ output.264 The following command is on how to apply clock option: ffmpeg -init_hw_device vulkan -i input.264 -vf \ hwupload=extra_hw_frames=16,transpose_vulkan=dir=clock,hwdownload,format=yuv420p \ output.264 Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter: add a transpose_vulkan filterWu Jianhua2021-12-10
| | | | | | | | The following command is on how to apply transpose_vulkan filter: ffmpeg -init_hw_device vulkan -i input.264 -vf \ hwupload=extra_hw_frames=16,transpose_vulkan,hwdownload,format=yuv420p output.264 Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/vf_transpose: fix un-checked potential memory allocation failureWu Jianhua2021-12-10
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* lavfi/vf_subtitles: stop using deprecated ass_set_aspect_ratio()Anton Khirnov2021-12-07
| | | | | It has been deprecated in favor of ass_set_pixel_aspect() since version 0.11.0, roughly ~2014. Even Debian oldoldstable (stretch) has 0.13.
* avfilter: add AVFILTER_FLAG_METADATA_ONLYAnton Khirnov2021-12-04
| | | | | | This flag allows distinguishing between filters that actually modify the data and those that only modify metadata or gather some stream information.
* lavfi/allfilters: move vf_chromaber_vulkan to video sectionAnton Khirnov2021-12-04
|
* avfilter/buffersink: Remove outdated commentsAndreas Rheinhardt2021-12-03
| | | | | | | | These lists have size fields since e48ded8551172b58a78f30303a81dfce125344e0. Reviewed-by: Nicolas George <george@nsup.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* all: Remove unused-but-set variablesAndreas Rheinhardt2021-12-03
| | | | | | Newer versions of Clang detect this and emit warnings for it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter: add a flip_vulkan filterWu Jianhua2021-12-02
| | | | | | | | This filter flips the input video both horizontally and vertically in one compute pipeline, and it's no need to use two pipelines for hflip_vulkan,vflip_vulkan anymore. Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter: add audio dynamic smooth filterPaul B Mahol2021-12-02
|
* avfilter: add audio spectral stats filterPaul B Mahol2021-12-02
|
* avfilter/src_movie: add format_opts for the opened fileLimin Wang2021-11-29
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_paletteuse: Add missing parenthesesAndreas Rheinhardt2021-11-27
| | | | | | | | Fixes a mistake in dea673d0d548c864ec85f9260d8900d944ef7a2a. GCC emitted a -Wint-in-bool-context warning because of that. Reviewed-by: Soft Works <softworkz@hotmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/af_biquads: add svf transform typePaul B Mahol2021-11-26
|
* avfilter/vf_huesaturation: Remove dead storeAndreas Rheinhardt2021-11-19
| | | | | | | Fixes Coverity issue #1493345. Reviewed-by: Steven Liu <lingjiujianke@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter: add a vflip_vulkan filterWu Jianhua2021-11-19
| | | | | | | | The following command is on how to apply vflip_vulkan filter: ffmpeg -init_hw_device vulkan -i input.264 -vf hwupload=extra_hw_frames=16,vflip_vulkan,hwdownload,format=yuv420p output.264 Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter: add a hflip_vulkan filterWu Jianhua2021-11-19
| | | | | | | | The following command is on how to apply hflip_vulkan filter: ffmpeg -init_hw_device vulkan -i input.264 -vf hwupload=extra_hw_frames=16,hflip_vulkan,hwdownload,format=yuv420p output.264 Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/overlay_vulkan: call av_vkfmt_from_pixfmt only one timeWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/scale_vulkan: call av_vkfmt_from_pixfmt only one timeWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/scale_vulkan: call av_pix_fmt_count_planes only one timeWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/chromaber_vulkan: call av_vkfmt_from_pixfmt only one timeWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/avgblur_vulkan: call av_vkfmt_from_pixfmt only one timeWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/overlay_vulkan: use FF_ARRAY_ELEMS instead of magic numberWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/scale_vulkan: use FF_ARRAY_ELEMS instead of magic numberWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/chromaber_vulkan: use FF_ARRAY_ELEMS instead of magic numberWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/avgblur_vulkan: use FF_ARRAY_ELEMS instead of magic numberWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/avgblur_vulkan: check if shader is created with successWu Jianhua2021-11-19
| | | | Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* vulkan: fix checkheadersLynne2021-11-19
|
* lavfi/vulkan: split off lavfi-specific code into vulkan_filter.cLynne2021-11-19
| | | | | | | | | | | | | | | | | The issue is that libavfilter depends on libavcodec, and when doing a static build, if libavcodec also includes "libavfilter/vulkan.c", then during link-time, compiling programs will fail as there would be multiple definitions of the same symbols in both libavfilter and libavcodec's object files. Linkers are, however, more permitting if both files that include a common file that's used as a template are one-to-one identical. Hence, to make both files the same in the future, export all avfilter specific functions to a separate file. There is some work in progress to make templated files like this be compiled only once, so this is not a long-term solution. This also removes a macro that could be used to toggle SPIRV compilation capability on #include-time, as this could cause the files to be different.
* lavu/vulkan: add option to switch between shader compilers and cleanup glslangLynne2021-11-19
|
* lavu/vulkan: move common Vulkan code from libavfilter to libavutilLynne2021-11-19
|
* avfilter/af_drmeter: improve measurement precisionPaul B Mahol2021-11-18
|
* avfilter/af_drmeter: refactor number of bins outPaul B Mahol2021-11-18
|
* avfilter/vf_gblur_vulkan: Fix use of uninitialized valueLimin Wang2021-11-17
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/gblur_vulkan: fix memory leakWu Jianhua2021-11-17
| | | | | | | Whether failed or not, the block of codes labeled with fail should be always run to ensure the av_free(kernel_def) is executed. Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter: add colorspectrum source video filterPaul B Mahol2021-11-16
|
* lavfi/vulkan: fix issues the previous commit introducedLynne2021-11-16
| | | | One typo and one think-before-you-paste.
* lavfi/vulkan: add mutliqueue emulation codeLynne2021-11-16
| | | | | This helps with testing multiple queues when the hardware only has a single queue.