summaryrefslogtreecommitdiff
path: root/libavfilter
Commit message (Collapse)AuthorAge
* 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.
* lavfi/vulkan: fix static descriptor set updatingLynne2021-11-16
| | | | | Update all descriptor sets for all queues if a descriptor set hasn't been initialized yet.
* libavfilter: add a gblur_vulkan filterWu Jianhua2021-11-16
| | | | | | | | | | | | This commit adds a powerful and customizable gblur Vulkan filter, which provides a maximum 127x127 kernel size of Gaussian Filter. The size could be adjusted by requirements on quality or performance. The following command is on how to apply gblur_vulkan filter: ffmpeg -init_hw_device vulkan -i input.264 -vf hwupload=extra_hw_frames=16,gblur_vulkan,hwdownload,format=yuv420p output.264 Signed-off-by: Wu Jianhua <jianhua.wu@intel.com>
* avfilter/v360: add support for off-axis projection outputPaul B Mahol2021-11-15
|
* */version.h: define FF_API macros unconditionallyAnton Khirnov2021-11-15
| | | | | | | There is no reason to wrap them in #ifndef guards, they should only be defined here and nowhere else. The define guards just add the possibility to accidentally use the same FF_API name in different libraries.
* avfilter/af_apad: do not add infinite silence for zero pad_dur or whole_durMarton Balint2021-11-14
| | | | | | | | | | | | | Unfortunately pad_len and pad_dur behaviour was different if 0 was specified, pad_dur handled 0 duration as infinity, for pad_len, infinity was -1. Let's make the behaviour consistent by handling 0 duration for pad_dur and whole_dur as indeed 0 duration. This somewhat changes the behaviour of the filter if 0 was explicitly specified, but deprecating the old option and adding a new for the corrected behaviour seemed a bit overkill. So let's document the change instead. Signed-off-by: Marton Balint <cus@passwd.hu>
* lavfi/vf_libplacebo: pick log level dynamicallyNiklas Haas2021-11-12
| | | | | | | | | | In particular, allows users to go all the way up to PL_LOG_TRACE if desired. (While also avoiding some potentially unnecessary callbacks for filtered messages, including e.g. the CPU cost of printing out shader sources) Response to runtime log level changes by updating it once per filter_frame(), which should hopefully be often enough.
* lavfi: add a libplacebo filterNiklas Haas2021-11-12
| | | | | | | | | | | | | | | | | | | | | | | | This filter conceptually maps the libplacebo `pl_renderer` API into libavfilter, which is a high-level image rendering API designed to work with an RGB pipeline internally. As such, there's no way to avoid e.g. chroma interpolation with this filter, although new versions of libplacebo support outputting back to subsampled YCbCr after processing is done. That being said, `pl_renderer` supports automatic integration of the majority of libplacebo's shaders, ranging from debanding to tone mapping, and also supports loading custom mpv-style user shaders, making this API a natural candidate for getting a lot of functionality out of relatively little code. In the future, I may approach this problem either by rewriting this filter to also support a non-renderer codepath, or by upgrading libplacebo's renderer to support a full YCbCr pipeline. This unfortunately requires a very new version of libplacebo (unreleased at time of writing) for timeline semaphore support. But the amount of boilerplate needed to hack in backwards compatibility would have been very unreasonable.
* avfilter/src_movie: make the number of decode thread configurableLimin Wang2021-11-12
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* lavfi/vulkan: refactor, fix and fully implement multiple queuesLynne2021-11-12
|
* lavfi/glslang: migrate to the C API and robustify library detectionLynne2021-11-12
| | | | | | | | Finally, this is as close to usable as it gets for glslang. Much faster to compile as well, and eliminates the need for a C++ compiler, which is great. Also, changes to the resource limits won't break users, as we can use designated initializers in C90.
* lavfi/vulkan: use libavutil's vulkan loaderLynne2021-11-12
| | | | This finally fully eliminates the need to statically link to libvulkan!
* vulkan: add support for encode and decode queues and refactor queue codeLynne2021-11-12
| | | | | | | | | This simplifies and makes queue family picking simpler and more robust. The requirements on the device context are relaxed. They made no sense in the first place. The video encode/decode extension is still in beta, at least on paper, but I really doubt they'd change needing a separate queue family.
* lavfi/vulkan: port to using timeline semaphoresLynne2021-11-12
|
* avfilter/vf_nlmeans: add x86 SIMDPaul B Mahol2021-11-11
|
* avfilter/vf_estdif: allow to change two more optionsPaul B Mahol2021-11-11
|
* avfilter/af_atilt: use ff_filter_execute()Limin Wang2021-11-11
| | | | Signed-off-by: Limin Wang <lance.lmwang@gmail.com>