History

lavfi: add query_func2()

It differs from query_func() in accepting arrays of input/output format configurations to be filled as callback parameters. This allows to mark the filter context as const, ensuring it is not modified by this function, as it is not supposed to have any side effects beyond returning the supported formats.

Anton Khirnov committed 2 years ago

Commit eddffbe1 parent 01f2d956 files · +347 −36Browse files

Showing the changes to libavfilter/tests (1 of 6 files). Show all

Unified · Split

libavfilter/tests/filtfmts.c+18−1
@@ -143,7 +143,24 @@ int main(int argc, char **argv) · 142 unmodified lines
143 143
144 if (filter->formats_state == FF_FILTER_FORMATS_QUERY_FUNC)144 if (filter->formats_state == FF_FILTER_FORMATS_QUERY_FUNC)
145 ret = filter->formats.query_func(filter_ctx);145 ret = filter->formats.query_func(filter_ctx);
146 else146 else if (filter->formats_state == FF_FILTER_FORMATS_QUERY_FUNC2) {
147 AVFilterFormatsConfig **cfg_in = NULL, **cfg_out = NULL;
148
149 if (filter_ctx->nb_inputs) {
150 cfg_in = av_malloc_array(filter_ctx->nb_inputs, sizeof(*cfg_in));
151 for (unsigned i = 0; i < filter_ctx->nb_inputs; i++)
152 cfg_in[i] = &filter_ctx->inputs[i]->outcfg;
153 }
154 if (filter_ctx->nb_outputs) {
155 cfg_out = av_malloc_array(filter_ctx->nb_outputs, sizeof(*cfg_out));
156 for (unsigned i = 0; i < filter_ctx->nb_outputs; i++)
157 cfg_out[i] = &filter_ctx->outputs[i]->incfg;
158 }
159
160 ret = filter->formats.query_func2(filter_ctx, cfg_in, cfg_out);
161 av_freep(&cfg_in);
162 av_freep(&cfg_out);
163 } else
147 ret = ff_default_query_formats(filter_ctx);164 ret = ff_default_query_formats(filter_ctx);
148 165
149 print_formats(filter_ctx);166 print_formats(filter_ctx);

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