aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove libpostprocMichael Niedermayer2025-05-073-193/+0
| | | | | | | | | | | | | | | Libpostproc will be available as source plugin at https://github.com/michaelni/FFmpeg/tree/sourceplugin-libpostproc OR https://github.com/michaelni/libpostproc whatever turns out more convenient to maintain For the upcoming 8.0 release, libpostproc will be included, so as not to cause delays or inconveniences Sponsored-by: Sovereign Tech Fund Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/vf_setparams: Fix chroma_location being clearedTobias Rapp2025-05-071-0/+2
| | | | | | | Fix chroma_location being cleared by setrange and setfield filters. This was forgotten in 201f1cba150d44de6fedfeee4e8647170ed5fbca. Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
* avfilter/drawutils: narrow variable scopesMarvin Scholz2025-04-221-46/+39
|
* tests: lavfi/drawutils: use av_err2strMarvin Scholz2025-04-221-3/+1
| | | | | There is no need to explicitly specify the buffer, as it is only ever passed to printf, so av_err2str can be used.
* lavfi/vf_xpsnr: use av_err2strMarvin Scholz2025-04-221-3/+2
| | | | | There is no need to explicitly specify the buffer, as it is only ever passed to av_log, so av_err2str can be used.
* lavfi/src_movie: set pkt_timebaseNicolas George2025-04-151-0/+1
| | | | | Fix “Could not update timestamps for skipped samples” warning and associated misfeature.
* avfilter/vf_libplacebo: don't explode on zero FPS informationNiklas Haas2025-04-031-1/+1
| | | | | | | | While technically not specifiad as valid by the AVFilterLink documentation, it is currently possible to get an FPS of zero from various sources inside libavfilter (notably vf_buffersrc). Avoid a division by zero and resulting infinity when this happens.
* avfilter/palette: Remove unused ff_srgb_u8_to_linear_int()Andreas Rheinhardt2025-04-032-11/+0
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vsrc_testsrc: also fill alpha planes with a test pattern in ↵James Almer2025-04-021-10/+38
| | | | | | | | {rgb,yuv}testsrc And add support for more formats. Signed-off-by: James Almer <jamrial@gmail.com>
* libavfilter: metal: Fix the version condition for iOSMartin Storsjö2025-04-011-1/+1
| | | | | | | MTLDevice supportsFamily is available since iOS 13, not 11, see https://developer.apple.com/documentation/metal/mtldevice/supportsfamily(_:)?language=objc. Signed-off-by: Martin Storsjö <martin@martin.st>
* doc/filters: add thumbnail_cuda entryDanil Iashchenko2025-03-311-1/+1
| | | | Also update thumbnail_cuda filter description.
* libs: bump major version for all librariesJames Almer2025-03-282-2/+2
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avutil: remove deprecated FF_API_FRAME_KEYJames Almer2025-03-283-20/+0
| | | | | | Deprecated since 2023-05-04. Signed-off-by: James Almer <jamrial@gmail.com>
* avutil: remove deprecated FF_API_INTERLACED_FRAMEJames Almer2025-03-2821-187/+0
| | | | | | Deprecated since 2023-05-04. Signed-off-by: James Almer <jamrial@gmail.com>
* avutil: remove deprecated FF_API_FRAME_PKTJames Almer2025-03-2816-251/+8
| | | | | | Deprecated since 2023-03-20. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/version_major: postpone some deprecations until the next bumpJames Almer2025-03-281-2/+2
| | | | | | They are too recent. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter: remove deprecated FF_API_LINK_PUBLICJames Almer2025-03-283-26/+0
| | | | | | Deprecated since 2024-03-08. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/scale: remove duplicate blockGyan Doshi2025-03-241-16/+0
| | | | Added in bb80445813
* avutil/libm: Only include intfloat.h when neededAndreas Rheinhardt2025-03-222-0/+2
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_zscale: add support for grayscale formatsJames Almer2025-03-201-3/+9
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vf_zscale: add support for half precision float RGB formatsJames Almer2025-03-201-3/+13
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vsrc_testsrc: use aligned macros for writingJames Almer2025-03-131-14/+14
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* all: Fix doxy comments wrongly designated as trailing ///<Andreas Rheinhardt2025-03-121-2/+2
| | | | | | | | | | | The ///< or /**< form of doxygen comments are only to be used when the documentation follows the member and the comment block starts on the same line as the member. This commit fixes wrong uses of them; in particular, this fixes the comment for mb_height in H.264 SPS's structure which was wrongly added to mb_width. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* libavfilter: guard against ff_draw_init/ff_draw_init2 failuresNil Fons Miret2025-03-1112-26/+109
| | | | | | | | | | | The return value of ff_draw_init and ff_draw_init2 are not checked in most usages. However, if they return an error, they don't get to the point where they set the attributes of the FFDrawContext. These functions are typically used in conjunction with ff_draw_color, which checks draw->desc->flags, causing a null pointer dereference. Signed-off-by: Nil Fons Miret <nilf@netflix.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/vsrc_testsrc: add support for semi planar formats to yuvtestsrcJames Almer2025-03-102-0/+21
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/dnn_detect: fail on filter if mandatory anchor option is missingLeandro Santiago2025-03-031-5/+8
| | | | | | | | | | It prevents the filter of running in case such option is missing, failing early, during init() instead of simply logging an error during runtime. Signed-off-by: Leandro Santiago <leandrosansilva@gmail.com> Reviewed-by: Wenbin Chen <wenbin.chen@intel.com> Reviewed-by: Guo Yejun <yejun.guo@intel.com>
* avfilter/dnn: do not manually parse anchors filter optionLeandro Santiago2025-03-031-39/+4
| | | | | | | | | Instead, rely on AV_OPT_TYPE_FLAG_ARRAY, which will automatically perform the parsing. Signed-off-by: Leandro Santiago <leandrosansilva@gmail.com> Reviewed-by: Wenbin Chen <wenbin.chen@intel.com> Reviewed-by: Guo Yejun <yejun.guo@intel.com>
* avfilter/vf_libplacebo: set correct alpha mode before blendingNiklas Haas2025-02-271-0/+3
| | | | | | | &pl_alpha_overlay expects straight alpha, but the alpha output may be premultiplied as a result of the target alpha mode (or in the absence of an alpha channel). Fix it by requesting independent alpha explicitly when blending.
* avfilter/vf_libplacebo: set colorspace properties on all inputsNiklas Haas2025-02-271-4/+2
| | | | | | | | There is no reason to only do this on the first input. It doesn't actually matter for now given that we don't constrain the color space list, but it may matter when that changes. Signed-off-by: Niklas Haas <git@haasn.dev>
* avfilter/vf_libplacebo: allow differing formats per inputNiklas Haas2025-02-271-1/+9
| | | | | | | | | Each input is entirely independent and can have varying pixel formats, color spaces, etc. To accomplish this, we need to make a full copy of the format list for each subsequent input, rather than sharing the same ref. Signed-off-by: Niklas Haas <git@haasn.dev> Sponsored-by: nxtedition
* avfilter/vf_libplacebo: switch to new background APINiklas Haas2025-02-271-2/+10
| | | | | | | | | Fixes a deprecation warning, and also fixes a bug where the depredated skip_target_clearing option was not correctly mapped to the new API inside libplacebo upstream. Signed-off-by: Niklas Haas <git@haasn.dev> Sponsored-by: nxtedition
* avfilter/vf_liplacebo: properly initialize variableNiklas Haas2025-02-271-1/+1
| | | | Signed-off-by: Niklas Haas <git@haasn.dev>
* avfilter/vf_libplacebo: remove deprecated optionsNiklas Haas2025-02-271-9/+0
| | | | | | | These were removed upstream and no longer have had any effect for a while now. Signed-off-by: Niklas Haas <git@haasn.dev>
* avfilter/libplacebo: add option for outputting separate fieldsNiklas Haas2025-02-271-3/+20
| | | | cf. the other deinterlacing-aware filters.
* avfilter/libplacebo: strip interlaced flag when deinterlacingNiklas Haas2025-02-271-0/+2
|
* avfilter/libplacebo: only mark frame fields when deinterlacingNiklas Haas2025-02-271-1/+1
| | | | | Avoids an unnecessary copy of the frame in the frame queue when not deinterlacing anyways.
* avfilter/libplacebo: add deinterlacing optionsNiklas Haas2025-02-271-0/+17
| | | | | | These were introduced in libplacebo API version 220. We actually already map the field by default, but deinterlacing was never enabled unless the user explicitly forced it using extra_ops.
* avfilter/vf_libplacebo: switch to AV_OPT_TYPE_COLORNiklas Haas2025-02-271-9/+6
|
* gblur_vulkan: simplify buffer content writingLynne2025-02-211-8/+2
| | | | | | | | Before .buf_elems, users had to manually print to a string if they wanted a non-fixed number of elements in an array. Since we're printing everything to the shaders manually anyway, use the new mechanism.
* overlay_vulkan: remove unused variableLynne2025-02-211-1/+0
| | | | Forgotten to be removed after the recent port to imageLoad()
* avfilter/libplacebo: use a transparent default fillcolorNiklas Haas2025-02-191-1/+1
| | | | | | This will leave the background transparent when the target format contains an alpha channel, without affecting the behavior on formats without one.
* overlay_vulkan: port to imageLoad()Lynne2025-02-181-15/+11
|
* blend_vulkan: port to imageLoad()Lynne2025-02-181-14/+9
|
* transpose_vulkan: port to imageLoad()Lynne2025-02-181-13/+7
|
* gblur_vulkan: port to imageLoad()Lynne2025-02-181-23/+18
|
* flip_vulkan: port to imageLoad()Lynne2025-02-181-15/+8
|
* nlmeans_vulkan: switch to imageLoad()Lynne2025-02-181-32/+24
|
* avgblur_vulkan: fix duplicated variable error when planes=0Lynne2025-02-181-1/+2
|
* avgblur_vulkan: port to imageLoad()Lynne2025-02-181-12/+7
|
* bwdif_vulkan: convert to storage imagesLynne2025-02-182-49/+45
| | | | | | | | | | | | | | | texture() uses bilinear scaling; imageLoad() accesses the image directly. The reason why texture() was used throughout Vulkan filters is that back when they were written, they were targetting old Intel hardware, which had a texel cache only for sampled images. These days, GPUs have a generic cache that doesn't care what source it gets populated with. Additionally, bypassing the sampling circuitry saves us some performance. Finally, all the old texture() code had an issue where unnormalized coordinates were used, but an offset of 0.5 was not added, hence each pixel ended up being interpolated. This fixes this.