From eddbdc8b7c70c562ff90c62c31070ce92a296233 Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Wed, 13 Aug 2025 15:39:16 +0200 Subject: [PATCH] avfilter/drawutils: add ff_draw_init_from_link() The overwhelming majority of references to ff_draw_init2() just set the colorspace properties from a filter link. This wrapper allows us to update all such referencen automatically. --- libavfilter/drawutils.c | 6 ++++++ libavfilter/drawutils.h | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 6f7dca021b..f7e3adf9e8 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -164,6 +164,12 @@ int ff_draw_init2(FFDrawContext *draw, enum AVPixelFormat format, enum AVColorSp return 0; } +int ff_draw_init_from_link(FFDrawContext *draw, const AVFilterLink *link, + unsigned flags) +{ + return ff_draw_init2(draw, link->format, link->colorspace, link->color_range, flags); +} + int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) { return ff_draw_init2(draw, format, AVCOL_SPC_UNSPECIFIED, AVCOL_RANGE_UNSPECIFIED, flags); diff --git a/libavfilter/drawutils.h b/libavfilter/drawutils.h index f4903d1a86..c68a78e84b 100644 --- a/libavfilter/drawutils.h +++ b/libavfilter/drawutils.h @@ -80,6 +80,13 @@ typedef struct FFDrawColor { int ff_draw_init2(FFDrawContext *draw, enum AVPixelFormat format, enum AVColorSpace csp, enum AVColorRange range, unsigned flags); +/** + * Init a draw context, taking the format, colorspace and range from the given + * filter link. + */ +int ff_draw_init_from_link(FFDrawContext *draw, const AVFilterLink *link, + unsigned flags); + /* * Legacy wrapper for ff_draw_init2. */