aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter
Commit message (Collapse)AuthorAgeFilesLines
* avfilter/scale_vt: implement frame cropKoushik Dutta2024-11-261-0/+55
| | | | | | | | | | | | The crop filter has no effect on scale_vt: -vf crop=100:100,scale_vt=300x300 Hardware frames (AV_PIX_FMT_FLAG_HWACCEL) are expected to use the crop_* properties, as seen in the implementation vf_crop.c. Signed-off-by: Koushik Dutta <koushd@gmail.com> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avfilter/scale_vt: implement negative width/height aspect ratio sizingKoushik Dutta2024-11-261-0/+2
| | | | | Signed-off-by: Koushik Dutta <koushd@gmail.com> Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avfilter/vf_scale: fix off-by-one in loop boundsNiklas Haas2024-11-251-2/+2
| | | | | | | | Results in over-read of the array. Fortunately, the excess element was never actually used, but it still triggers ASAN (and could in theory trigger a segfault). Fixes: 04ce01df0bb2d66e143bcfcea439afc2a1b8d96e
* avfilter/vf_scale: switch to new swscale APINiklas Haas2024-11-251-274/+77
| | | | | | | | | Most logic from this filter has been co-opted into swscale itself, allowing the resulting filter to be substantially simpler as it no longer has to worry about context initialization, interlacing, etc. Sponsored-by: Sovereign Tech Fund Signed-off-by: Niklas Haas <git@haasn.dev>
* avfilter: fix unused variable warningMarvin Scholz2024-11-241-2/+1
| | | | | | The ctxi_dst variable is unused outside of the av_assert1, causing an unused variable warning. The simplest solution for this is to avoid the intermediate variable here.
* lavfi/vf_drawtext: fix memory management when destroying font faceLeandro Santiago2024-11-191-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ref https://trac.ffmpeg.org/ticket/11152 According to harfbuzz docs, hb_ft_font_set_funcs() does not need to be called, as, quoted: ``` An #hb_font_t object created with hb_ft_font_create() is preconfigured for FreeType font functions and does not require this function to be used. ``` Using this function seems to cause memory management issues between harfbuzz and freetype, and could be eliminated. This commit also call hb_ft_font_changed() when the underlying FC_Face changes size, as stated on hardbuzz: ``` HarfBuzz also provides a utility function called hb_ft_font_changed() that you should call whenever you have altered the properties of your underlying FT_Face, as well as a hb_ft_get_face() that you can call on an hb_font_t font object to fetch its underlying FT_Face. ``` Finally, the execution order between hb_font_destroy() and hb_buffer_destroy() is flipped to match the order of creation of the respective objects. Signed-off-by: Leandro Santiago <leandrosansilva@gmail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* avfilter/f_loop: fix aloop activate logicMarton Balint2024-11-111-42/+28
| | | | | | | | | | | | | | The logic did not follow the documented behaviour and that caused skipping of some audio in the loop and in the leftover buffer. Example command line which should produce a smooth sine wave for the whole duration of the output: ffmpeg -f lavfi -i "sine=r=48000:f=480:d=4" -af "aloop=loop=4:start=48000:size=48000" out.wav Fixes ticket #11283. Signed-off-by: Marton Balint <cus@passwd.hu>
* avfilter/f_loop: fix length of aloop leftover bufferMarton Balint2024-11-111-3/+2
| | | | | | | | | If the audio loop stops inside an audio frame, the leftover buffer contains the end of the frame, which is not looped. The length supposed to be the part which was not written to the loop buffer, so we need to drain exactly that number of bytes from the leftover buffer. Signed-off-by: Marton Balint <cus@passwd.hu>
* avfilter/vf_zscale: extend the configuration log message with color space infoJames Almer2024-11-091-1/+3
| | | | | | And print it in DEBUG level, not TRACE, as it's useful information. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vf_zscale: remove unecessary argument from realign_frameJames Almer2024-11-091-4/+4
| | | | | | Possible since the previous commit. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vf_zscale: align the frame buffersJames Almer2024-11-091-17/+6
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* lavfi/vf_zscale: fix call to av_pix_fmt_count_planesPavel Koshevoy2024-11-091-1/+1
| | | | | | realign_frame called av_pix_fmt_count_planes with incorrect parameter. Signed-off-by: James Almer <jamrial@gmail.com>
* lavfi/vf_zscale: fix tmp buffer ptr alignment for zimg_filter_graph_processPavel Koshevoy2024-11-091-3/+10
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/framepool: align the frame buffersJames Almer2024-11-091-4/+8
| | | | | | And not just the linesizes. Use the extra align bytes allocated for this purpose. Signed-off-by: James Almer <jamrial@gmail.com>
* lavfi/vf_libplacebo: eliminate LibplaceboInput.linkAnton Khirnov2024-11-091-21/+20
| | | | | | | | Setting it was broken in 8160178dfc0e6bdaacf80dec58e595a9d595eedc, since links are not yet set up during init. It is also redundant, as the struct also stores the input index. Reported-By: llyyr <llyyr.public@gmail.com>
* avfilter/vsrc_testsrc: add support for RGB48/RGBA64James Almer2024-11-061-0/+20
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* vsrc_testsrc: add support for x2rgb10le to rgbtestsrcJames Almer2024-11-021-0/+11
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/scale_cuda: frame crop supportKoushik Dutta2024-11-013-14/+25
| | | | | | | | | | | The crop filter has no effect on scale_cuda: -vf crop=100:100,scale_cuda=100x100 Hardware frames (AV_PIX_FMT_FLAG_HWACCEL) are expected to use the crop_* properties, as seen in the implementation vf_crop.c. Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* avfilter/vsrc_testsrc: add support for XV48James Almer2024-10-261-1/+2
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vf_pixdesctest: also take into account undefined alpha componentsJames Almer2024-10-211-1/+1
| | | | | | | Ensure those bits are copied, which will result in the output being the same as the input, where swscale set them to the equivalent of fully opaque. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vsrc_testsrc: use the alpha component information for XV3{0,6} and V30XJames Almer2024-10-211-5/+2
| | | | | | | And add a few more tests to ensure all the pixfmts affected by this change are tested. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vf_subtitles: Respect YCbCr Matrix headerarch1t3cht2024-10-191-1/+37
| | | | | | | | | | | | | As specified in libass's ass_types.h, the colors or ASS_Images should be converted to YCbCr using the matrix/range specified in the track's YCbCrMatrix field (unless that field is set to YCBCR_NONE, and defaulting to TV.601 if the header is missing). This does not affect any subtitles generated or transcoded by ffmpeg, since these contain a 'YCbCrMatrix: None' header. Signed-off-by: arch1t3cht <arch1t3cht@gmail.com> Signed-off-by: rcombs <rcombs@rcombs.me>
* avfilter/vsrc_testsrc: fill the xv30le alpha bitsJames Almer2024-10-171-1/+2
| | | | | | As with other pixel formats, set the undefined alpha bits to opaque. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/vsrc_testsrc: add support for XV36 and AYUV64James Almer2024-10-171-2/+12
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* lavfi/vsrc_perlin: convert to query_func2()Anton Khirnov2024-10-171-3/+5
|
* lavfi/vsrc_life: convert to query_func2()Anton Khirnov2024-10-171-4/+6
|
* lavfi/vsrc_life: avoid modifying the context in query_formats()Anton Khirnov2024-10-171-62/+63
| | | | It is supposed to be free of side effects. Do it in init instead.
* lavfi/vf_zscale: convert to query_func2()Anton Khirnov2024-10-171-9/+11
|
* lavfi/vf_weave: convert to query_func2()Anton Khirnov2024-10-171-4/+7
|
* lavfi/vf_vpp_qsv: convert to query_func2()Anton Khirnov2024-10-171-5/+7
|
* lavfi/vf_vmafmotion: convert to query_func2()Anton Khirnov2024-10-171-3/+5
|
* lavfi/vf_v360: convert to query_func2()Anton Khirnov2024-10-171-4/+7
|
* lavfi/vf_untile: convert to query_func2()Anton Khirnov2024-10-171-3/+6
|
* lavfi/vf_transpose: convert to query_func2()Anton Khirnov2024-10-171-3/+5
|
* lavfi/vf_tpad: convert to query_func2()Anton Khirnov2024-10-171-5/+9
|
* lavfi/vf_tile: convert to query_func2()Anton Khirnov2024-10-171-3/+6
|
* lavfi/vf_telecine: convert to query_func2()Anton Khirnov2024-10-171-3/+6
|
* lavfi/vf_swapuv: convert to query_func2()Anton Khirnov2024-10-171-3/+5
|
* lavfi/vf_swaprect: convert to query_func2()Anton Khirnov2024-10-171-3/+6
|
* lavfi/vf_subtitles: convert to query_func2()Anton Khirnov2024-10-171-4/+7
|
* lavfi/vf_stereo3d: convert to query_func2()Anton Khirnov2024-10-171-4/+6
|
* lavfi/vf_stack: convert to query_func2()Anton Khirnov2024-10-171-7/+11
|
* lavfi/vf_shuffleplanes: convert to query_func2()Anton Khirnov2024-10-171-4/+6
|
* lavfi/vf_showpalette: convert to query_func2()Anton Khirnov2024-10-171-4/+6
|
* lavfi/vf_setparams: convert to query_func2()Anton Khirnov2024-10-171-7/+8
|
* vulkan: enable selecting a compatible representation of formatLynne2024-10-162-9/+9
| | | | | | | | | When using **integer** images inside shaders, it turns out that conversion doesn't automatically happen, but we need to explicitly use the imageviews to get the image exposed as a suitable representation for the shader. Finally enables bitexact image representations.
* libavfilter/Makefile: add a makefile for Vulkan shadersLynne2024-10-152-9/+16
|
* lavfi/vf_scale: switch to query_func2()Anton Khirnov2024-10-151-10/+12
|
* lavfi/vf_remap: switch to query_func2()Anton Khirnov2024-10-151-7/+9
|
* lavfi/vf_mergeplanes: switch to query_func2()Anton Khirnov2024-10-151-5/+7
|