lavfi: add drawvg video filter.

The drawvg filter can draw vector graphics on top of a video, using libcairo. It
is enabled if FFmpeg is configured with `--enable-cairo`.

The language for drawvg scripts is documented in `doc/drawvg-reference.texi`.

There are two new tests:

- `fate-filter-drawvg-interpreter` launch a script with most commands, and
  verify which libcairo functions are executed.
- `fate-filter-drawvg-video` render a very simple image, just to verify that
  libcairo is working as expected.

Signed-off-by: Ayose <ayosec@gmail.com>
This commit is contained in:
Ayose
2025-10-18 17:34:36 +00:00
committed by michaelni
parent d77f917621
commit 016d767c8e
16 changed files with 6170 additions and 0 deletions
+5
View File
@@ -298,6 +298,7 @@ OBJS-$(CONFIG_DRAWBOX_FILTER) += vf_drawbox.o
OBJS-$(CONFIG_DRAWGRAPH_FILTER) += f_drawgraph.o
OBJS-$(CONFIG_DRAWGRID_FILTER) += vf_drawbox.o
OBJS-$(CONFIG_DRAWTEXT_FILTER) += vf_drawtext.o textutils.o
OBJS-$(CONFIG_DRAWVG_FILTER) += vf_drawvg.o textutils.o
OBJS-$(CONFIG_EDGEDETECT_FILTER) += vf_edgedetect.o edge_common.o
OBJS-$(CONFIG_ELBG_FILTER) += vf_elbg.o
OBJS-$(CONFIG_ENTROPY_FILTER) += vf_entropy.o
@@ -681,6 +682,10 @@ SKIPHEADERS-$(CONFIG_VULKAN) += vulkan_filter.h
TOOLS = graph2dot
TESTPROGS = drawutils filtfmts formats integral
ifdef CONFIG_DRAWVG_FILTER
TESTPROGS += drawvg
endif
TOOLS-$(CONFIG_LIBZMQ) += zmqsend
clean::