History

lavfi/vf_alphamerge: switch to query_func2()

Simplify the implementation by using the fact that ff_set_common_*() will ignore those links on which the formats have already been set.

Anton Khirnov committed 2 years ago

Commit 7ab1ddb1 parent a2881811 file · +13 −8Browse files

Unified · Split

libavfilter/vf_alphamerge.c+13−8
@@ -96,7 +96,9 @@ static av_cold int init(AVFilterContext *ctx) · 95 unmodified lines
9696 return 0;
9797 }
9898
99−static int query_formats(AVFilterContext *ctx)
99+static int query_formats(const AVFilterContext *ctx,
100+ AVFilterFormatsConfig **cfg_in,
101+ AVFilterFormatsConfig **cfg_out)
100102 {
101103 static const enum AVPixelFormat main_fmts[] = {
102104 AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P,
@@ -105,15 +107,18 @@ static int query_formats(AVFilterContext *ctx) · 2 unmodified lines
105107 AV_PIX_FMT_NONE
106108 };
107109 static const enum AVPixelFormat alpha_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };
108− AVFilterFormats *main_formats = ff_make_format_list(main_fmts);
109110 int ret;
110111
111− if ((ret = ff_formats_ref(main_formats, &ctx->inputs[0]->outcfg.formats)) < 0 ||
112− (ret = ff_formats_ref(main_formats, &ctx->outputs[0]->incfg.formats)) < 0)
113− return ret;
112+ ret = ff_formats_ref(ff_make_format_list(alpha_fmts),
113+ &cfg_in[1]->formats);
114+ if (ret < 0)
115+ return ret;
116+
117+ ret = ff_set_common_formats_from_list2(ctx, cfg_in, cfg_out, main_fmts);
118+ if (ret < 0)
119+ return ret;
114120
115− return ff_formats_ref(ff_make_format_list(alpha_fmts),
116− &ctx->inputs[1]->outcfg.formats);
121+ return 0;
117122 }
118123
119124 static int config_input_main(AVFilterLink *inlink)
@@ -203,7 +208,7 @@ const AVFilter ff_vf_alphamerge = { · 83 unmodified lines
203208 .init = init,
204209 FILTER_INPUTS(alphamerge_inputs),
205210 FILTER_OUTPUTS(alphamerge_outputs),
206− FILTER_QUERY_FUNC(query_formats),
211+ FILTER_QUERY_FUNC2(query_formats),
207212 .uninit = uninit,
208213 .activate = activate,
209214 .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t