Also, simplify code and drop redundant calls that also happen implicitly in generic code.
Unified · Split
| @@ -217,13 +217,11 @@ static av_cold int init(AVFilterContext *ctx) · 216 unmodified lines | ||
| 217 | 217 | return 0; |
| 218 | 218 | } |
| 219 | 219 | |
| 220 | −static int query_formats(AVFilterContext *ctx) | |
| 220 | +static int query_formats(const AVFilterContext *ctx, | |
| 221 | + AVFilterFormatsConfig **cfg_in, | |
| 222 | + AVFilterFormatsConfig **cfg_out) | |
| 221 | 223 | { |
| 222 | − AVFilterLink *inlink = ctx->inputs[0]; | |
| 223 | − AVFilterLink *outlink = ctx->outputs[0]; | |
| 224 | − AudioNEqualizerContext *s = ctx->priv; | |
| 225 | − AVFilterFormats *formats; | |
| 226 | − AVFilterChannelLayouts *layouts; | |
| 224 | + const AudioNEqualizerContext *s = ctx->priv; | |
| 227 | 225 | static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_RGBA, AV_PIX_FMT_NONE }; |
| 228 | 226 | static const enum AVSampleFormat sample_fmts[] = { |
| 229 | 227 | AV_SAMPLE_FMT_DBLP, |
| @@ -232,25 +230,13 @@ static int query_formats(AVFilterContext *ctx) · 2 unmodified lines | ||
| 232 | 230 | int ret; |
| 233 | 231 | |
| 234 | 232 | if (s->draw_curves) { |
| 235 | − AVFilterLink *videolink = ctx->outputs[1]; | |
| 236 | − formats = ff_make_format_list(pix_fmts); | |
| 237 | − if ((ret = ff_formats_ref(formats, &videolink->incfg.formats)) < 0) | |
| 233 | + ret = ff_set_common_formats_from_list2(ctx, cfg_in, cfg_out, pix_fmts); | |
| 234 | + if (ret < 0) | |
| 238 | 235 | return ret; |
| 239 | 236 | } |
| 240 | 237 | |
| 241 | − formats = ff_make_format_list(sample_fmts); | |
| 242 | − if ((ret = ff_formats_ref(formats, &inlink->outcfg.formats)) < 0 || | |
| 243 | − (ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0) | |
| 244 | − return ret; | |
| 245 | − | |
| 246 | − layouts = ff_all_channel_counts(); | |
| 247 | − if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0 || | |
| 248 | − (ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts)) < 0) | |
| 249 | − return ret; | |
| 250 | − | |
| 251 | − formats = ff_all_samplerates(); | |
| 252 | − if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0 || | |
| 253 | − (ret = ff_formats_ref(formats, &outlink->incfg.samplerates)) < 0) | |
| 238 | + ret = ff_set_common_formats_from_list2(ctx, cfg_in, cfg_out, sample_fmts); | |
| 239 | + if (ret < 0) | |
| 254 | 240 | return ret; |
| 255 | 241 | |
| 256 | 242 | return 0; |
| @@ -775,7 +761,7 @@ const AVFilter ff_af_anequalizer = { · 518 unmodified lines | ||
| 775 | 761 | .uninit = uninit, |
| 776 | 762 | FILTER_INPUTS(inputs), |
| 777 | 763 | .outputs = NULL, |
| 778 | − FILTER_QUERY_FUNC(query_formats), | |
| 764 | + FILTER_QUERY_FUNC2(query_formats), | |
| 779 | 765 | .process_command = process_command, |
| 780 | 766 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | |
| 781 | 767 | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |