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
96 return 0;96 return 0;
97}97}
98 98
99static int query_formats(AVFilterContext *ctx)99static int query_formats(const AVFilterContext *ctx,
100 AVFilterFormatsConfig **cfg_in,
101 AVFilterFormatsConfig **cfg_out)
100{102{
101 static const enum AVPixelFormat main_fmts[] = {103 static const enum AVPixelFormat main_fmts[] = {
102 AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P,104 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
105 AV_PIX_FMT_NONE107 AV_PIX_FMT_NONE
106 };108 };
107 static const enum AVPixelFormat alpha_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };109 static const enum AVPixelFormat alpha_fmts[] = { AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE };
108 AVFilterFormats *main_formats = ff_make_format_list(main_fmts);
109 int ret;110 int ret;
110 111
111 if ((ret = ff_formats_ref(main_formats, &ctx->inputs[0]->outcfg.formats)) < 0 ||112 ret = ff_formats_ref(ff_make_format_list(alpha_fmts),
112 (ret = ff_formats_ref(main_formats, &ctx->outputs[0]->incfg.formats)) < 0)113 &cfg_in[1]->formats);
113 return ret;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;
114 120
115 return ff_formats_ref(ff_make_format_list(alpha_fmts),121 return 0;
116 &ctx->inputs[1]->outcfg.formats);
117}122}
118 123
119static int config_input_main(AVFilterLink *inlink)124static int config_input_main(AVFilterLink *inlink)
@@ -203,7 +208,7 @@ const AVFilter ff_vf_alphamerge = { · 83 unmodified lines
203 .init = init,208 .init = init,
204 FILTER_INPUTS(alphamerge_inputs),209 FILTER_INPUTS(alphamerge_inputs),
205 FILTER_OUTPUTS(alphamerge_outputs),210 FILTER_OUTPUTS(alphamerge_outputs),
206 FILTER_QUERY_FUNC(query_formats),211 FILTER_QUERY_FUNC2(query_formats),
207 .uninit = uninit,212 .uninit = uninit,
208 .activate = activate,213 .activate = activate,
209 .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,214 .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