History

lavfi: regroup formats lists in a single structure.

It will allow to refernce it as a whole without clunky macros. Most of the changes have been automatically made with sed: sed -i ' s/-> *in_formats/->incfg.formats/g; s/-> *out_formats/->outcfg.formats/g; s/-> *in_channel_layouts/->incfg.channel_layouts/g; s/-> *out_channel_layouts/->outcfg.channel_layouts/g; s/-> *in_samplerates/->incfg.samplerates/g; s/-> *out_samplerates/->outcfg.samplerates/g; ' src/libavfilter/*(.)

Nicolas George committed 6 years ago

Commit 2f764761 parent 6a2df7c70 files · +386 −364Browse files

Unified · Split

70 files
  1. libavfilter/aeval.c +2 −2
  2. libavfilter/af_afir.c +4 −4
  3. libavfilter/af_agate.c +5 −5
  4. libavfilter/af_aiir.c +1 −1
  5. libavfilter/af_amerge.c +6 −6
  6. libavfilter/af_anequalizer.c +7 −7
  7. libavfilter/af_aresample.c +6 −6
  8. libavfilter/af_asetrate.c +1 −1
  9. libavfilter/af_channelmap.c +2 −2
  10. libavfilter/af_channelsplit.c +2 −2
  11. libavfilter/af_hdcd.c +2 −2
  12. libavfilter/af_headphone.c +4 −4
  13. libavfilter/af_join.c +2 −2
  14. libavfilter/af_ladspa.c +3 −3
  15. libavfilter/af_loudnorm.c +2 −2
  16. libavfilter/af_lv2.c +3 −3
  17. libavfilter/af_pan.c +2 −2
  18. libavfilter/af_resample.c +6 −6
  19. libavfilter/af_sidechaincompress.c +5 −5
  20. libavfilter/af_sofalizer.c +2 −2
  21. libavfilter/af_surround.c +2 −2
  22. libavfilter/avf_abitscope.c +4 −4
  23. libavfilter/avf_ahistogram.c +4 −4
  24. libavfilter/avf_aphasemeter.c +7 −7
  25. libavfilter/avf_avectorscope.c +4 −4
  26. libavfilter/avf_concat.c +6 −6
  27. libavfilter/avf_showcqt.c +4 −4
  28. libavfilter/avf_showfreqs.c +4 −4
  29. libavfilter/avf_showspatial.c +4 −4
  30. libavfilter/avf_showspectrum.c +4 −4
  31. libavfilter/avf_showvolume.c +4 −4
  32. libavfilter/avf_showwaves.c +4 −4
  33. libavfilter/avfilter.c +15 −15
  34. libavfilter/avfilter.h +41 −19
  35. libavfilter/avfiltergraph.c +108 −108
  36. libavfilter/f_drawgraph.c +1 −1
  37. libavfilter/f_ebur128.c +7 −7
  38. libavfilter/f_graphmonitor.c +1 −1
  39. libavfilter/formats.c +3 −3
  40. libavfilter/src_movie.c +4 −4
  41. libavfilter/tests/filtfmts.c +3 −3
  42. libavfilter/vaapi_vpp.c +2 −2
  43. libavfilter/vaf_spectrumsynth.c +5 −5
  44. libavfilter/vf_alphamerge.c +3 −3
  45. libavfilter/vf_ciescope.c +2 −2
  46. libavfilter/vf_colorspace.c +2 −2
  47. libavfilter/vf_coreimage.m +3 −3
  48. libavfilter/vf_elbg.c +2 −2
  49. libavfilter/vf_extractplanes.c +6 −6
  50. libavfilter/vf_fieldmatch.c +3 −3
  51. libavfilter/vf_fieldorder.c +2 −2
  52. libavfilter/vf_histogram.c +6 −6
  53. libavfilter/vf_hwdownload.c +2 −2
  54. libavfilter/vf_hwmap.c +2 −2
  55. libavfilter/vf_hwupload.c +2 −2
  56. libavfilter/vf_hwupload_cuda.c +2 −2
  57. libavfilter/vf_lut2.c +2 −2
  58. libavfilter/vf_mergeplanes.c +2 −2
  59. libavfilter/vf_overlay.c +3 −3
  60. libavfilter/vf_overlay_qsv.c +2 −2
  61. libavfilter/vf_palettegen.c +2 −2
  62. libavfilter/vf_paletteuse.c +3 −3
  63. libavfilter/vf_remap.c +4 −4
  64. libavfilter/vf_scale.c +2 −2
  65. libavfilter/vf_showpalette.c +2 −2
  66. libavfilter/vf_vectorscope.c +6 −6
  67. libavfilter/vf_vpp_qsv.c +2 −2
  68. libavfilter/vf_waveform.c +7 −7
  69. libavfilter/vf_yadif_cuda.c +2 −2
  70. libavfilter/vf_zscale.c +2 −2
libavfilter/aeval.c+2−2
@@ -362,7 +362,7 @@ static int aeval_query_formats(AVFilterContext *ctx) · 361 unmodified lines
362362
363363 // inlink supports any channel layout
364364 layouts = ff_all_channel_counts();
365− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0)
365+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0)
366366 return ret;
367367
368368 if (eval->same_chlayout) {
@@ -376,7 +376,7 @@ static int aeval_query_formats(AVFilterContext *ctx) · 7 unmodified lines
376376 eval->out_channel_layout ? eval->out_channel_layout :
377377 FF_COUNT2LAYOUT(eval->nb_channels))) < 0)
378378 return ret;
379− if ((ret = ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts)) < 0)
379+ if ((ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts)) < 0)
380380 return ret;
381381 }
382382
libavfilter/af_afir.c+4−4
@@ -731,7 +731,7 @@ static int query_formats(AVFilterContext *ctx) · 730 unmodified lines
731731 if (s->response) {
732732 AVFilterLink *videolink = ctx->outputs[1];
733733 formats = ff_make_format_list(pix_fmts);
734− if ((ret = ff_formats_ref(formats, &videolink->in_formats)) < 0)
734+ if ((ret = ff_formats_ref(formats, &videolink->incfg.formats)) < 0)
735735 return ret;
736736 }
737737
@@ -746,16 +746,16 @@ static int query_formats(AVFilterContext *ctx) · 8 unmodified lines
746746 } else {
747747 AVFilterChannelLayouts *mono = NULL;
748748
749− if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->out_channel_layouts)) < 0)
749+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->outcfg.channel_layouts)) < 0)
750750 return ret;
751− if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0)
751+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0)
752752 return ret;
753753
754754 ret = ff_add_channel_layout(&mono, AV_CH_LAYOUT_MONO);
755755 if (ret)
756756 return ret;
757757 for (int i = 1; i < ctx->nb_inputs; i++) {
758− if ((ret = ff_channel_layouts_ref(mono, &ctx->inputs[i]->out_channel_layouts)) < 0)
758+ if ((ret = ff_channel_layouts_ref(mono, &ctx->inputs[i]->outcfg.channel_layouts)) < 0)
759759 return ret;
760760 }
761761 }
libavfilter/af_agate.c+5−5
@@ -353,20 +353,20 @@ static int scquery_formats(AVFilterContext *ctx) · 352 unmodified lines
353353 };
354354 int ret, i;
355355
356− if (!ctx->inputs[0]->in_channel_layouts ||
357− !ctx->inputs[0]->in_channel_layouts->nb_channel_layouts) {
356+ if (!ctx->inputs[0]->incfg.channel_layouts ||
357+ !ctx->inputs[0]->incfg.channel_layouts->nb_channel_layouts) {
358358 av_log(ctx, AV_LOG_WARNING,
359359 "No channel layout for input 1\n");
360360 return AVERROR(EAGAIN);
361361 }
362362
363− if ((ret = ff_add_channel_layout(&layouts, ctx->inputs[0]->in_channel_layouts->channel_layouts[0])) < 0 ||
364− (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0)
363+ if ((ret = ff_add_channel_layout(&layouts, ctx->inputs[0]->incfg.channel_layouts->channel_layouts[0])) < 0 ||
364+ (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0)
365365 return ret;
366366
367367 for (i = 0; i < 2; i++) {
368368 layouts = ff_all_channel_counts();
369− if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->out_channel_layouts)) < 0)
369+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->outcfg.channel_layouts)) < 0)
370370 return ret;
371371 }
372372
libavfilter/af_aiir.c+1−1
@@ -95,7 +95,7 @@ static int query_formats(AVFilterContext *ctx) · 94 unmodified lines
9595 AVFilterLink *videolink = ctx->outputs[1];
9696
9797 formats = ff_make_format_list(pix_fmts);
98− if ((ret = ff_formats_ref(formats, &videolink->in_formats)) < 0)
98+ if ((ret = ff_formats_ref(formats, &videolink->incfg.formats)) < 0)
9999 return ret;
100100 }
101101
libavfilter/af_amerge.c+6−6
@@ -81,14 +81,14 @@ static int query_formats(AVFilterContext *ctx) · 80 unmodified lines
8181 int i, ret, overlap = 0, nb_ch = 0;
8282
8383 for (i = 0; i < s->nb_inputs; i++) {
84− if (!ctx->inputs[i]->in_channel_layouts ||
85− !ctx->inputs[i]->in_channel_layouts->nb_channel_layouts) {
84+ if (!ctx->inputs[i]->incfg.channel_layouts ||
85+ !ctx->inputs[i]->incfg.channel_layouts->nb_channel_layouts) {
8686 av_log(ctx, AV_LOG_WARNING,
8787 "No channel layout for input %d\n", i + 1);
8888 return AVERROR(EAGAIN);
8989 }
90− inlayout[i] = ctx->inputs[i]->in_channel_layouts->channel_layouts[0];
91− if (ctx->inputs[i]->in_channel_layouts->nb_channel_layouts > 1) {
90+ inlayout[i] = ctx->inputs[i]->incfg.channel_layouts->channel_layouts[0];
91+ if (ctx->inputs[i]->incfg.channel_layouts->nb_channel_layouts > 1) {
9292 char buf[256];
9393 av_get_channel_layout_string(buf, sizeof(buf), 0, inlayout[i]);
9494 av_log(ctx, AV_LOG_INFO, "Using \"%s\" for input %d\n", buf, i + 1);
@@ -136,13 +136,13 @@ static int query_formats(AVFilterContext *ctx) · 41 unmodified lines
136136 layouts = NULL;
137137 if ((ret = ff_add_channel_layout(&layouts, inlayout[i])) < 0)
138138 return ret;
139− if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->out_channel_layouts)) < 0)
139+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->outcfg.channel_layouts)) < 0)
140140 return ret;
141141 }
142142 layouts = NULL;
143143 if ((ret = ff_add_channel_layout(&layouts, outlayout)) < 0)
144144 return ret;
145− if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0)
145+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0)
146146 return ret;
147147
148148 return ff_set_common_samplerates(ctx, ff_all_samplerates());
libavfilter/af_anequalizer.c+7−7
@@ -231,23 +231,23 @@ static int query_formats(AVFilterContext *ctx) · 230 unmodified lines
231231 if (s->draw_curves) {
232232 AVFilterLink *videolink = ctx->outputs[1];
233233 formats = ff_make_format_list(pix_fmts);
234− if ((ret = ff_formats_ref(formats, &videolink->in_formats)) < 0)
234+ if ((ret = ff_formats_ref(formats, &videolink->incfg.formats)) < 0)
235235 return ret;
236236 }
237237
238238 formats = ff_make_format_list(sample_fmts);
239− if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0 ||
240− (ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
239+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.formats)) < 0 ||
240+ (ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
241241 return ret;
242242
243243 layouts = ff_all_channel_counts();
244− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0 ||
245− (ret = ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts)) < 0)
244+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0 ||
245+ (ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts)) < 0)
246246 return ret;
247247
248248 formats = ff_all_samplerates();
249− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0 ||
250− (ret = ff_formats_ref(formats, &outlink->in_samplerates)) < 0)
249+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0 ||
250+ (ret = ff_formats_ref(formats, &outlink->incfg.samplerates)) < 0)
251251 return ret;
252252
253253 return 0;
libavfilter/af_aresample.c+6−6
@@ -95,15 +95,15 @@ static int query_formats(AVFilterContext *ctx) · 94 unmodified lines
9595 av_opt_get_int(aresample->swr, "ocl", 0, &out_layout);
9696
9797 in_formats = ff_all_formats(AVMEDIA_TYPE_AUDIO);
98− if ((ret = ff_formats_ref(in_formats, &inlink->out_formats)) < 0)
98+ if ((ret = ff_formats_ref(in_formats, &inlink->outcfg.formats)) < 0)
9999 return ret;
100100
101101 in_samplerates = ff_all_samplerates();
102− if ((ret = ff_formats_ref(in_samplerates, &inlink->out_samplerates)) < 0)
102+ if ((ret = ff_formats_ref(in_samplerates, &inlink->outcfg.samplerates)) < 0)
103103 return ret;
104104
105105 in_layouts = ff_all_channel_counts();
106− if ((ret = ff_channel_layouts_ref(in_layouts, &inlink->out_channel_layouts)) < 0)
106+ if ((ret = ff_channel_layouts_ref(in_layouts, &inlink->outcfg.channel_layouts)) < 0)
107107 return ret;
108108
109109 if(out_rate > 0) {
@@ -113,7 +113,7 @@ static int query_formats(AVFilterContext *ctx) · 3 unmodified lines
113113 out_samplerates = ff_all_samplerates();
114114 }
115115
116− if ((ret = ff_formats_ref(out_samplerates, &outlink->in_samplerates)) < 0)
116+ if ((ret = ff_formats_ref(out_samplerates, &outlink->incfg.samplerates)) < 0)
117117 return ret;
118118
119119 if(out_format != AV_SAMPLE_FMT_NONE) {
@@ -121,7 +121,7 @@ static int query_formats(AVFilterContext *ctx) · 1 unmodified line
121121 out_formats = ff_make_format_list(formatlist);
122122 } else
123123 out_formats = ff_all_formats(AVMEDIA_TYPE_AUDIO);
124− if ((ret = ff_formats_ref(out_formats, &outlink->in_formats)) < 0)
124+ if ((ret = ff_formats_ref(out_formats, &outlink->incfg.formats)) < 0)
125125 return ret;
126126
127127 if(out_layout) {
@@ -130,7 +130,7 @@ static int query_formats(AVFilterContext *ctx) · 2 unmodified lines
130130 } else
131131 out_layouts = ff_all_channel_counts();
132132
133− return ff_channel_layouts_ref(out_layouts, &outlink->in_channel_layouts);
133+ return ff_channel_layouts_ref(out_layouts, &outlink->incfg.channel_layouts);
134134 }
135135
136136
libavfilter/af_asetrate.c+1−1
@@ -52,7 +52,7 @@ static av_cold int query_formats(AVFilterContext *ctx) · 51 unmodified lines
5252 int sample_rates[] = { sr->sample_rate, -1 };
5353
5454 return ff_formats_ref(ff_make_format_list(sample_rates),
55− &ctx->outputs[0]->in_samplerates);
55+ &ctx->outputs[0]->incfg.samplerates);
5656 }
5757
5858 static av_cold int config_props(AVFilterLink *outlink)
libavfilter/af_channelmap.c+2−2
@@ -287,11 +287,11 @@ static int channelmap_query_formats(AVFilterContext *ctx) · 286 unmodified lines
287287 (ret = ff_set_common_samplerates (ctx , ff_all_samplerates() )) < 0 ||
288288 (ret = ff_add_channel_layout(&channel_layouts, s->output_layout)) < 0 ||
289289 (ret = ff_channel_layouts_ref(channel_layouts,
290− &ctx->outputs[0]->in_channel_layouts)) < 0)
290+ &ctx->outputs[0]->incfg.channel_layouts)) < 0)
291291 return ret;
292292
293293 return ff_channel_layouts_ref(ff_all_channel_counts(),
294− &ctx->inputs[0]->out_channel_layouts);
294+ &ctx->inputs[0]->outcfg.channel_layouts);
295295 }
296296
297297 static int channelmap_filter_frame(AVFilterLink *inlink, AVFrame *buf)
libavfilter/af_channelsplit.c+2−2
@@ -117,7 +117,7 @@ static int query_formats(AVFilterContext *ctx) · 116 unmodified lines
117117 return ret;
118118
119119 if ((ret = ff_add_channel_layout(&in_layouts, s->channel_layout)) < 0 ||
120− (ret = ff_channel_layouts_ref(in_layouts, &ctx->inputs[0]->out_channel_layouts)) < 0)
120+ (ret = ff_channel_layouts_ref(in_layouts, &ctx->inputs[0]->outcfg.channel_layouts)) < 0)
121121 return ret;
122122
123123 for (i = 0; i < ctx->nb_outputs; i++) {
@@ -125,7 +125,7 @@ static int query_formats(AVFilterContext *ctx) · 1 unmodified line
125125 uint64_t channel = av_channel_layout_extract_channel(s->channel_layout, s->map[i]);
126126
127127 if ((ret = ff_add_channel_layout(&out_layouts, channel)) < 0 ||
128− (ret = ff_channel_layouts_ref(out_layouts, &ctx->outputs[i]->in_channel_layouts)) < 0)
128+ (ret = ff_channel_layouts_ref(out_layouts, &ctx->outputs[i]->incfg.channel_layouts)) < 0)
129129 return ret;
130130 }
131131
libavfilter/af_hdcd.c+2−2
@@ -1638,12 +1638,12 @@ static int query_formats(AVFilterContext *ctx) · 1637 unmodified lines
16381638 return ret;
16391639
16401640 in_formats = ff_make_format_list(sample_fmts_in);
1641− ret = ff_formats_ref(in_formats, &inlink->out_formats);
1641+ ret = ff_formats_ref(in_formats, &inlink->outcfg.formats);
16421642 if (ret < 0)
16431643 return ret;
16441644
16451645 out_formats = ff_make_format_list(sample_fmts_out);
1646− ret = ff_formats_ref(out_formats, &outlink->in_formats);
1646+ ret = ff_formats_ref(out_formats, &outlink->incfg.formats);
16471647 if (ret < 0)
16481648 return ret;
16491649
libavfilter/af_headphone.c+4−4
@@ -698,14 +698,14 @@ static int query_formats(AVFilterContext *ctx) · 697 unmodified lines
698698 if (!layouts)
699699 return AVERROR(ENOMEM);
700700
701− ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->out_channel_layouts);
701+ ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->outcfg.channel_layouts);
702702 if (ret)
703703 return ret;
704704
705705 ret = ff_add_channel_layout(&stereo_layout, AV_CH_LAYOUT_STEREO);
706706 if (ret)
707707 return ret;
708− ret = ff_channel_layouts_ref(stereo_layout, &ctx->outputs[0]->in_channel_layouts);
708+ ret = ff_channel_layouts_ref(stereo_layout, &ctx->outputs[0]->incfg.channel_layouts);
709709 if (ret)
710710 return ret;
711711
@@ -713,12 +713,12 @@ static int query_formats(AVFilterContext *ctx) · 1 unmodified line
713713 hrir_layouts = ff_all_channel_counts();
714714 if (!hrir_layouts)
715715 return AVERROR(ENOMEM);
716− ret = ff_channel_layouts_ref(hrir_layouts, &ctx->inputs[1]->out_channel_layouts);
716+ ret = ff_channel_layouts_ref(hrir_layouts, &ctx->inputs[1]->outcfg.channel_layouts);
717717 if (ret)
718718 return ret;
719719 } else {
720720 for (i = 1; i < s->nb_inputs; i++) {
721− ret = ff_channel_layouts_ref(stereo_layout, &ctx->inputs[i]->out_channel_layouts);
721+ ret = ff_channel_layouts_ref(stereo_layout, &ctx->inputs[i]->outcfg.channel_layouts);
722722 if (ret)
723723 return ret;
724724 }
libavfilter/af_join.c+2−2
@@ -227,12 +227,12 @@ static int join_query_formats(AVFilterContext *ctx) · 226 unmodified lines
227227 int i, ret;
228228
229229 if ((ret = ff_add_channel_layout(&layouts, s->channel_layout)) < 0 ||
230− (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0)
230+ (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0)
231231 return ret;
232232
233233 for (i = 0; i < ctx->nb_inputs; i++) {
234234 layouts = ff_all_channel_layouts();
235− if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->out_channel_layouts)) < 0)
235+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->outcfg.channel_layouts)) < 0)
236236 return ret;
237237 }
238238
libavfilter/af_ladspa.c+3−3
@@ -714,12 +714,12 @@ static int query_formats(AVFilterContext *ctx) · 713 unmodified lines
714714 ret = ff_add_channel_layout(&layouts, inlayout);
715715 if (ret < 0)
716716 return ret;
717− ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts);
717+ ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts);
718718 if (ret < 0)
719719 return ret;
720720
721721 if (!s->nb_outputs) {
722− ret = ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts);
722+ ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts);
723723 if (ret < 0)
724724 return ret;
725725 }
@@ -732,7 +732,7 @@ static int query_formats(AVFilterContext *ctx) · 6 unmodified lines
732732 ret = ff_add_channel_layout(&layouts, outlayout);
733733 if (ret < 0)
734734 return ret;
735− ret = ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts);
735+ ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts);
736736 if (ret < 0)
737737 return ret;
738738 }
libavfilter/af_loudnorm.c+2−2
@@ -714,10 +714,10 @@ static int query_formats(AVFilterContext *ctx) · 713 unmodified lines
714714 formats = ff_make_format_list(input_srate);
715715 if (!formats)
716716 return AVERROR(ENOMEM);
717− ret = ff_formats_ref(formats, &inlink->out_samplerates);
717+ ret = ff_formats_ref(formats, &inlink->outcfg.samplerates);
718718 if (ret < 0)
719719 return ret;
720− ret = ff_formats_ref(formats, &outlink->in_samplerates);
720+ ret = ff_formats_ref(formats, &outlink->incfg.samplerates);
721721 if (ret < 0)
722722 return ret;
723723 }
libavfilter/af_lv2.c+3−3
@@ -524,12 +524,12 @@ static int query_formats(AVFilterContext *ctx) · 523 unmodified lines
524524 ret = ff_add_channel_layout(&layouts, inlayout);
525525 if (ret < 0)
526526 return ret;
527− ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts);
527+ ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts);
528528 if (ret < 0)
529529 return ret;
530530
531531 if (!s->nb_outputs) {
532− ret = ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts);
532+ ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts);
533533 if (ret < 0)
534534 return ret;
535535 }
@@ -542,7 +542,7 @@ static int query_formats(AVFilterContext *ctx) · 6 unmodified lines
542542 ret = ff_add_channel_layout(&layouts, outlayout);
543543 if (ret < 0)
544544 return ret;
545− ret = ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts);
545+ ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts);
546546 if (ret < 0)
547547 return ret;
548548 }
libavfilter/af_pan.c+2−2
@@ -266,7 +266,7 @@ static int query_formats(AVFilterContext *ctx) · 265 unmodified lines
266266
267267 // inlink supports any channel layout
268268 layouts = ff_all_channel_counts();
269− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0)
269+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0)
270270 return ret;
271271
272272 // outlink supports only requested output channel layout
@@ -275,7 +275,7 @@ static int query_formats(AVFilterContext *ctx) · 2 unmodified lines
275275 pan->out_channel_layout ? pan->out_channel_layout :
276276 FF_COUNT2LAYOUT(pan->nb_output_channels))) < 0)
277277 return ret;
278− return ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts);
278+ return ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts);
279279 }
280280
281281 static int config_props(AVFilterLink *link)
libavfilter/af_resample.c+6−6
@@ -102,12 +102,12 @@ static int query_formats(AVFilterContext *ctx) · 101 unmodified lines
102102 !(out_layouts = ff_all_channel_layouts ( )))
103103 return AVERROR(ENOMEM);
104104
105− if ((ret = ff_formats_ref (in_formats, &inlink->out_formats )) < 0 ||
106− (ret = ff_formats_ref (out_formats, &outlink->in_formats )) < 0 ||
107− (ret = ff_formats_ref (in_samplerates, &inlink->out_samplerates )) < 0 ||
108− (ret = ff_formats_ref (out_samplerates, &outlink->in_samplerates )) < 0 ||
109− (ret = ff_channel_layouts_ref (in_layouts, &inlink->out_channel_layouts)) < 0 ||
110− (ret = ff_channel_layouts_ref (out_layouts, &outlink->in_channel_layouts)) < 0)
105+ if ((ret = ff_formats_ref (in_formats, &inlink->outcfg.formats )) < 0 ||
106+ (ret = ff_formats_ref (out_formats, &outlink->incfg.formats )) < 0 ||
107+ (ret = ff_formats_ref (in_samplerates, &inlink->outcfg.samplerates )) < 0 ||
108+ (ret = ff_formats_ref (out_samplerates, &outlink->incfg.samplerates )) < 0 ||
109+ (ret = ff_channel_layouts_ref (in_layouts, &inlink->outcfg.channel_layouts)) < 0 ||
110+ (ret = ff_channel_layouts_ref (out_layouts, &outlink->incfg.channel_layouts)) < 0)
111111 return ret;
112112
113113 return 0;
libavfilter/af_sidechaincompress.c+5−5
@@ -306,20 +306,20 @@ static int query_formats(AVFilterContext *ctx) · 305 unmodified lines
306306 };
307307 int ret, i;
308308
309− if (!ctx->inputs[0]->in_channel_layouts ||
310− !ctx->inputs[0]->in_channel_layouts->nb_channel_layouts) {
309+ if (!ctx->inputs[0]->incfg.channel_layouts ||
310+ !ctx->inputs[0]->incfg.channel_layouts->nb_channel_layouts) {
311311 av_log(ctx, AV_LOG_WARNING,
312312 "No channel layout for input 1\n");
313313 return AVERROR(EAGAIN);
314314 }
315315
316− if ((ret = ff_add_channel_layout(&layouts, ctx->inputs[0]->in_channel_layouts->channel_layouts[0])) < 0 ||
317− (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0)
316+ if ((ret = ff_add_channel_layout(&layouts, ctx->inputs[0]->incfg.channel_layouts->channel_layouts[0])) < 0 ||
317+ (ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0)
318318 return ret;
319319
320320 for (i = 0; i < 2; i++) {
321321 layouts = ff_all_channel_counts();
322− if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->out_channel_layouts)) < 0)
322+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[i]->outcfg.channel_layouts)) < 0)
323323 return ret;
324324 }
325325
libavfilter/af_sofalizer.c+2−2
@@ -652,7 +652,7 @@ static int query_formats(AVFilterContext *ctx) · 651 unmodified lines
652652 if (!layouts)
653653 return AVERROR(ENOMEM);
654654
655− ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->out_channel_layouts);
655+ ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->outcfg.channel_layouts);
656656 if (ret)
657657 return ret;
658658
@@ -661,7 +661,7 @@ static int query_formats(AVFilterContext *ctx) · 2 unmodified lines
661661 if (ret)
662662 return ret;
663663
664− ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts);
664+ ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts);
665665 if (ret)
666666 return ret;
667667
libavfilter/af_surround.c+2−2
@@ -175,7 +175,7 @@ static int query_formats(AVFilterContext *ctx) · 174 unmodified lines
175175 if (ret)
176176 return ret;
177177
178− ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts);
178+ ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts);
179179 if (ret)
180180 return ret;
181181
@@ -184,7 +184,7 @@ static int query_formats(AVFilterContext *ctx) · 2 unmodified lines
184184 if (ret)
185185 return ret;
186186
187− ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->out_channel_layouts);
187+ ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->outcfg.channel_layouts);
188188 if (ret)
189189 return ret;
190190
libavfilter/avf_abitscope.c+4−4
@@ -69,21 +69,21 @@ static int query_formats(AVFilterContext *ctx) · 68 unmodified lines
6969 int ret;
7070
7171 formats = ff_make_format_list(sample_fmts);
72− if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0)
72+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.formats)) < 0)
7373 return ret;
7474
7575 layouts = ff_all_channel_counts();
7676 if (!layouts)
7777 return AVERROR(ENOMEM);
78− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0)
78+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0)
7979 return ret;
8080
8181 formats = ff_all_samplerates();
82− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
82+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0)
8383 return ret;
8484
8585 formats = ff_make_format_list(pix_fmts);
86− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
86+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
8787 return ret;
8888
8989 return 0;
libavfilter/avf_ahistogram.c+4−4
@@ -99,17 +99,17 @@ static int query_formats(AVFilterContext *ctx) · 98 unmodified lines
9999 int ret = AVERROR(EINVAL);
100100
101101 formats = ff_make_format_list(sample_fmts);
102− if ((ret = ff_formats_ref (formats, &inlink->out_formats )) < 0 ||
102+ if ((ret = ff_formats_ref (formats, &inlink->outcfg.formats )) < 0 ||
103103 (layouts = ff_all_channel_counts()) == NULL ||
104− (ret = ff_channel_layouts_ref (layouts, &inlink->out_channel_layouts)) < 0)
104+ (ret = ff_channel_layouts_ref (layouts, &inlink->outcfg.channel_layouts)) < 0)
105105 return ret;
106106
107107 formats = ff_all_samplerates();
108− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
108+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0)
109109 return ret;
110110
111111 formats = ff_make_format_list(pix_fmts);
112− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
112+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
113113 return ret;
114114
115115 return 0;
libavfilter/avf_aphasemeter.c+7−7
@@ -76,23 +76,23 @@ static int query_formats(AVFilterContext *ctx) · 75 unmodified lines
7676 int ret;
7777
7878 formats = ff_make_format_list(sample_fmts);
79− if ((ret = ff_formats_ref (formats, &inlink->out_formats )) < 0 ||
80− (ret = ff_formats_ref (formats, &outlink->in_formats )) < 0 ||
79+ if ((ret = ff_formats_ref (formats, &inlink->outcfg.formats )) < 0 ||
80+ (ret = ff_formats_ref (formats, &outlink->incfg.formats )) < 0 ||
8181 (ret = ff_add_channel_layout (&layout, AV_CH_LAYOUT_STEREO )) < 0 ||
82− (ret = ff_channel_layouts_ref (layout , &inlink->out_channel_layouts)) < 0 ||
83− (ret = ff_channel_layouts_ref (layout , &outlink->in_channel_layouts)) < 0)
82+ (ret = ff_channel_layouts_ref (layout , &inlink->outcfg.channel_layouts)) < 0 ||
83+ (ret = ff_channel_layouts_ref (layout , &outlink->incfg.channel_layouts)) < 0)
8484 return ret;
8585
8686 formats = ff_all_samplerates();
87− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0 ||
88− (ret = ff_formats_ref(formats, &outlink->in_samplerates)) < 0)
87+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0 ||
88+ (ret = ff_formats_ref(formats, &outlink->incfg.samplerates)) < 0)
8989 return ret;
9090
9191 if (s->do_video) {
9292 AVFilterLink *outlink = ctx->outputs[1];
9393
9494 formats = ff_make_format_list(pix_fmts);
95− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
95+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
9696 return ret;
9797 }
9898
libavfilter/avf_avectorscope.c+4−4
@@ -190,17 +190,17 @@ static int query_formats(AVFilterContext *ctx) · 189 unmodified lines
190190 int ret;
191191
192192 formats = ff_make_format_list(sample_fmts);
193− if ((ret = ff_formats_ref (formats, &inlink->out_formats )) < 0 ||
193+ if ((ret = ff_formats_ref (formats, &inlink->outcfg.formats )) < 0 ||
194194 (ret = ff_add_channel_layout (&layout, AV_CH_LAYOUT_STEREO )) < 0 ||
195− (ret = ff_channel_layouts_ref (layout , &inlink->out_channel_layouts)) < 0)
195+ (ret = ff_channel_layouts_ref (layout , &inlink->outcfg.channel_layouts)) < 0)
196196 return ret;
197197
198198 formats = ff_all_samplerates();
199− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
199+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0)
200200 return ret;
201201
202202 formats = ff_make_format_list(pix_fmts);
203− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
203+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
204204 return ret;
205205
206206 return 0;
libavfilter/avf_concat.c+6−6
@@ -87,25 +87,25 @@ static int query_formats(AVFilterContext *ctx) · 86 unmodified lines
8787
8888 /* Set the output formats */
8989 formats = ff_all_formats(type);
90− if ((ret = ff_formats_ref(formats, &ctx->outputs[idx]->in_formats)) < 0)
90+ if ((ret = ff_formats_ref(formats, &ctx->outputs[idx]->incfg.formats)) < 0)
9191 return ret;
9292
9393 if (type == AVMEDIA_TYPE_AUDIO) {
9494 rates = ff_all_samplerates();
95− if ((ret = ff_formats_ref(rates, &ctx->outputs[idx]->in_samplerates)) < 0)
95+ if ((ret = ff_formats_ref(rates, &ctx->outputs[idx]->incfg.samplerates)) < 0)
9696 return ret;
9797 layouts = ff_all_channel_layouts();
98− if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[idx]->in_channel_layouts)) < 0)
98+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[idx]->incfg.channel_layouts)) < 0)
9999 return ret;
100100 }
101101
102102 /* Set the same formats for each corresponding input */
103103 for (seg = 0; seg < cat->nb_segments; seg++) {
104− if ((ret = ff_formats_ref(formats, &ctx->inputs[idx]->out_formats)) < 0)
104+ if ((ret = ff_formats_ref(formats, &ctx->inputs[idx]->outcfg.formats)) < 0)
105105 return ret;
106106 if (type == AVMEDIA_TYPE_AUDIO) {
107− if ((ret = ff_formats_ref(rates, &ctx->inputs[idx]->out_samplerates)) < 0 ||
108− (ret = ff_channel_layouts_ref(layouts, &ctx->inputs[idx]->out_channel_layouts)) < 0)
107+ if ((ret = ff_formats_ref(rates, &ctx->inputs[idx]->outcfg.samplerates)) < 0 ||
108+ (ret = ff_channel_layouts_ref(layouts, &ctx->inputs[idx]->outcfg.channel_layouts)) < 0)
109109 return ret;
110110 }
111111 idx += ctx->nb_outputs;
libavfilter/avf_showcqt.c+4−4
@@ -1331,20 +1331,20 @@ static int query_formats(AVFilterContext *ctx) · 1330 unmodified lines
13311331
13321332 /* set input audio formats */
13331333 formats = ff_make_format_list(sample_fmts);
1334− if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0)
1334+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.formats)) < 0)
13351335 return ret;
13361336
13371337 layouts = ff_make_format64_list(channel_layouts);
1338− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0)
1338+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0)
13391339 return ret;
13401340
13411341 formats = ff_all_samplerates();
1342− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
1342+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0)
13431343 return ret;
13441344
13451345 /* set output video format */
13461346 formats = ff_make_format_list(pix_fmts);
1347− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
1347+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
13481348 return ret;
13491349
13501350 return 0;
libavfilter/avf_showfreqs.c+4−4
@@ -132,20 +132,20 @@ static int query_formats(AVFilterContext *ctx) · 131 unmodified lines
132132
133133 /* set input audio formats */
134134 formats = ff_make_format_list(sample_fmts);
135− if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0)
135+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.formats)) < 0)
136136 return ret;
137137
138138 layouts = ff_all_channel_layouts();
139− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0)
139+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0)
140140 return ret;
141141
142142 formats = ff_all_samplerates();
143− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
143+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0)
144144 return ret;
145145
146146 /* set output video format */
147147 formats = ff_make_format_list(pix_fmts);
148− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
148+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
149149 return ret;
150150
151151 return 0;
libavfilter/avf_showspatial.c+4−4
@@ -114,17 +114,17 @@ static int query_formats(AVFilterContext *ctx) · 113 unmodified lines
114114 int ret;
115115
116116 formats = ff_make_format_list(sample_fmts);
117− if ((ret = ff_formats_ref (formats, &inlink->out_formats )) < 0 ||
117+ if ((ret = ff_formats_ref (formats, &inlink->outcfg.formats )) < 0 ||
118118 (ret = ff_add_channel_layout (&layout, AV_CH_LAYOUT_STEREO )) < 0 ||
119− (ret = ff_channel_layouts_ref (layout , &inlink->out_channel_layouts)) < 0)
119+ (ret = ff_channel_layouts_ref (layout , &inlink->outcfg.channel_layouts)) < 0)
120120 return ret;
121121
122122 formats = ff_all_samplerates();
123− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
123+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0)
124124 return ret;
125125
126126 formats = ff_make_format_list(pix_fmts);
127− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
127+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
128128 return ret;
129129
130130 return 0;
libavfilter/avf_showspectrum.c+4−4
@@ -355,20 +355,20 @@ static int query_formats(AVFilterContext *ctx) · 354 unmodified lines
355355
356356 /* set input audio formats */
357357 formats = ff_make_format_list(sample_fmts);
358− if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0)
358+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.formats)) < 0)
359359 return ret;
360360
361361 layouts = ff_all_channel_layouts();
362− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0)
362+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0)
363363 return ret;
364364
365365 formats = ff_all_samplerates();
366− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
366+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0)
367367 return ret;
368368
369369 /* set output video format */
370370 formats = ff_make_format_list(pix_fmts);
371− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
371+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
372372 return ret;
373373
374374 return 0;
libavfilter/avf_showvolume.c+4−4
@@ -125,19 +125,19 @@ static int query_formats(AVFilterContext *ctx) · 124 unmodified lines
125125 int ret;
126126
127127 formats = ff_make_format_list(sample_fmts);
128− if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0)
128+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.formats)) < 0)
129129 return ret;
130130
131131 layouts = ff_all_channel_counts();
132− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0)
132+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0)
133133 return ret;
134134
135135 formats = ff_all_samplerates();
136− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
136+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0)
137137 return ret;
138138
139139 formats = ff_make_format_list(pix_fmts);
140− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
140+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
141141 return ret;
142142
143143 return 0;
libavfilter/avf_showwaves.c+4−4
@@ -161,20 +161,20 @@ static int query_formats(AVFilterContext *ctx) · 160 unmodified lines
161161
162162 /* set input audio formats */
163163 formats = ff_make_format_list(sample_fmts);
164− if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0)
164+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.formats)) < 0)
165165 return ret;
166166
167167 layouts = ff_all_channel_layouts();
168− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0)
168+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0)
169169 return ret;
170170
171171 formats = ff_all_samplerates();
172− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0)
172+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0)
173173 return ret;
174174
175175 /* set output video format */
176176 formats = ff_make_format_list(pix_fmts);
177− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
177+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
178178 return ret;
179179
180180 return 0;
libavfilter/avfilter.c+15−15
@@ -261,15 +261,15 @@ int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, · 260 unmodified lines
261261
262262 /* if any information on supported media formats already exists on the
263263 * link, we need to preserve that */
264− if (link->out_formats)
265− ff_formats_changeref(&link->out_formats,
266− &filt->outputs[filt_dstpad_idx]->out_formats);
267− if (link->out_samplerates)
268− ff_formats_changeref(&link->out_samplerates,
269− &filt->outputs[filt_dstpad_idx]->out_samplerates);
270− if (link->out_channel_layouts)
271− ff_channel_layouts_changeref(&link->out_channel_layouts,
272− &filt->outputs[filt_dstpad_idx]->out_channel_layouts);
264+ if (link->outcfg.formats)
265+ ff_formats_changeref(&link->outcfg.formats,
266+ &filt->outputs[filt_dstpad_idx]->outcfg.formats);
267+ if (link->outcfg.samplerates)
268+ ff_formats_changeref(&link->outcfg.samplerates,
269+ &filt->outputs[filt_dstpad_idx]->outcfg.samplerates);
270+ if (link->outcfg.channel_layouts)
271+ ff_channel_layouts_changeref(&link->outcfg.channel_layouts,
272+ &filt->outputs[filt_dstpad_idx]->outcfg.channel_layouts);
273273
274274 return 0;
275275 }
@@ -746,12 +746,12 @@ static void free_link(AVFilterLink *link) · 470 unmodified lines
746746
747747 av_buffer_unref(&link->hw_frames_ctx);
748748
749− ff_formats_unref(&link->in_formats);
750− ff_formats_unref(&link->out_formats);
751− ff_formats_unref(&link->in_samplerates);
752− ff_formats_unref(&link->out_samplerates);
753− ff_channel_layouts_unref(&link->in_channel_layouts);
754− ff_channel_layouts_unref(&link->out_channel_layouts);
749+ ff_formats_unref(&link->incfg.formats);
750+ ff_formats_unref(&link->outcfg.formats);
751+ ff_formats_unref(&link->incfg.samplerates);
752+ ff_formats_unref(&link->outcfg.samplerates);
753+ ff_channel_layouts_unref(&link->incfg.channel_layouts);
754+ ff_channel_layouts_unref(&link->outcfg.channel_layouts);
755755 avfilter_link_free(&link);
756756 }
757757
libavfilter/avfilter.h+41−19
@@ -68,6 +68,7 @@ typedef struct AVFilterContext AVFilterContext; · 67 unmodified lines
6868 typedef struct AVFilterLink AVFilterLink;
6969 typedef struct AVFilterPad AVFilterPad;
7070 typedef struct AVFilterFormats AVFilterFormats;
71+typedef struct AVFilterChannelLayouts AVFilterChannelLayouts;
7172
7273 /**
7374 * Get the number of elements in a NULL-terminated array of AVFilterPads (e.g.
@@ -264,13 +265,13 @@ typedef struct AVFilter { · 190 unmodified lines
264265 * and outputs are fixed), shortly before the format negotiation. This
265266 * callback may be called more than once.
266267 *
267− * This callback must set AVFilterLink.out_formats on every input link and
268− * AVFilterLink.in_formats on every output link to a list of pixel/sample
268+ * This callback must set AVFilterLink.outcfg.formats on every input link and
269+ * AVFilterLink.incfg.formats on every output link to a list of pixel/sample
269270 * formats that the filter supports on that link. For audio links, this
270− * filter must also set @ref AVFilterLink.in_samplerates "in_samplerates" /
271− * @ref AVFilterLink.out_samplerates "out_samplerates" and
272− * @ref AVFilterLink.in_channel_layouts "in_channel_layouts" /
273− * @ref AVFilterLink.out_channel_layouts "out_channel_layouts" analogously.
271+ * filter must also set @ref AVFilterLink.incfg.samplerates "in_samplerates" /
272+ * @ref AVFilterLink.outcfg.samplerates "out_samplerates" and
273+ * @ref AVFilterLink.incfg.channel_layouts "in_channel_layouts" /
274+ * @ref AVFilterLink.outcfg.channel_layouts "out_channel_layouts" analogously.
274275 *
275276 * This callback may be NULL for filters with one input, in which case
276277 * libavfilter assumes that it supports all input formats and preserves
@@ -424,6 +425,35 @@ struct AVFilterContext { · 147 unmodified lines
424425 int extra_hw_frames;
425426 };
426427
428+/**
429+ * Lists of formats / etc. supported by an end of a link.
430+ *
431+ * This structure is directly part of AVFilterLink, in two copies:
432+ * one for the source filter, one for the destination filter.
433+
434+ * These lists are used for negotiating the format to actually be used,
435+ * which will be loaded into the format and channel_layout members of
436+ * AVFilterLink, when chosen.
437+ */
438+typedef struct AVFilterFormatsConfig {
439+
440+ /**
441+ * List of supported formats (pixel or sample).
442+ */
443+ AVFilterFormats *formats;
444+
445+ /**
446+ * Lists of supported sample rates, only for audio.
447+ */
448+ AVFilterFormats *samplerates;
449+
450+ /**
451+ * Lists of supported channel layouts, only for audio.
452+ */
453+ AVFilterChannelLayouts *channel_layouts;
454+
455+} AVFilterFormatsConfig;
456+
427457 /**
428458 * A link between two filters. This contains pointers to the source and
429459 * destination filters between which this link exists, and the indexes of
@@ -471,24 +501,16 @@ struct AVFilterLink { · 41 unmodified lines
471501 * New public fields should be added right above.
472502 *****************************************************************
473503 */
504+
474505 /**
475− * Lists of formats and channel layouts supported by the input and output
476− * filters respectively. These lists are used for negotiating the format
477− * to actually be used, which will be loaded into the format and
478− * channel_layout members, above, when chosen.
479− *
506+ * Lists of supported formats / etc. supported by the input filter.
480507 */
481− AVFilterFormats *in_formats;
482− AVFilterFormats *out_formats;
508+ AVFilterFormatsConfig incfg;
483509
484510 /**
485− * Lists of channel layouts and sample rates used for automatic
486− * negotiation.
511+ * Lists of supported formats / etc. supported by the output filter.
487512 */
488− AVFilterFormats *in_samplerates;
489− AVFilterFormats *out_samplerates;
490− struct AVFilterChannelLayouts *in_channel_layouts;
491− struct AVFilterChannelLayouts *out_channel_layouts;
513+ AVFilterFormatsConfig outcfg;
492514
493515 /** stage of the initialization of the link properties (dimensions, etc) */
494516 enum {
libavfilter/avfiltergraph.c+108−108
@@ -331,9 +331,9 @@ static int filter_query_formats(AVFilterContext *ctx) · 330 unmodified lines
331331 }
332332
333333 for (i = 0; i < ctx->nb_inputs; i++)
334− sanitize_channel_layouts(ctx, ctx->inputs[i]->out_channel_layouts);
334+ sanitize_channel_layouts(ctx, ctx->inputs[i]->outcfg.channel_layouts);
335335 for (i = 0; i < ctx->nb_outputs; i++)
336− sanitize_channel_layouts(ctx, ctx->outputs[i]->in_channel_layouts);
336+ sanitize_channel_layouts(ctx, ctx->outputs[i]->incfg.channel_layouts);
337337
338338 formats = ff_all_formats(type);
339339 if ((ret = ff_set_common_formats(ctx, formats)) < 0)
@@ -354,19 +354,19 @@ static int formats_declared(AVFilterContext *f) · 14 unmodified lines
354354 int i;
355355
356356 for (i = 0; i < f->nb_inputs; i++) {
357− if (!f->inputs[i]->out_formats)
357+ if (!f->inputs[i]->outcfg.formats)
358358 return 0;
359359 if (f->inputs[i]->type == AVMEDIA_TYPE_AUDIO &&
360− !(f->inputs[i]->out_samplerates &&
361− f->inputs[i]->out_channel_layouts))
360+ !(f->inputs[i]->outcfg.samplerates &&
361+ f->inputs[i]->outcfg.channel_layouts))
362362 return 0;
363363 }
364364 for (i = 0; i < f->nb_outputs; i++) {
365− if (!f->outputs[i]->in_formats)
365+ if (!f->outputs[i]->incfg.formats)
366366 return 0;
367367 if (f->outputs[i]->type == AVMEDIA_TYPE_AUDIO &&
368− !(f->outputs[i]->in_samplerates &&
369− f->outputs[i]->in_channel_layouts))
368+ !(f->outputs[i]->incfg.samplerates &&
369+ f->outputs[i]->incfg.channel_layouts))
370370 return 0;
371371 }
372372 return 1;
@@ -416,24 +416,24 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx) · 43 unmodified lines
416416 if (!link)
417417 continue;
418418
419− if (link->in_formats != link->out_formats
420− && link->in_formats && link->out_formats)
421− if (!ff_can_merge_formats(link->in_formats, link->out_formats,
419+ if (link->incfg.formats != link->outcfg.formats
420+ && link->incfg.formats && link->outcfg.formats)
421+ if (!ff_can_merge_formats(link->incfg.formats, link->outcfg.formats,
422422 link->type))
423423 convert_needed = 1;
424424 if (link->type == AVMEDIA_TYPE_AUDIO) {
425− if (link->in_samplerates != link->out_samplerates
426− && link->in_samplerates && link->out_samplerates)
427− if (!ff_can_merge_samplerates(link->in_samplerates,
428− link->out_samplerates))
425+ if (link->incfg.samplerates != link->outcfg.samplerates
426+ && link->incfg.samplerates && link->outcfg.samplerates)
427+ if (!ff_can_merge_samplerates(link->incfg.samplerates,
428+ link->outcfg.samplerates))
429429 convert_needed = 1;
430430 }
431431
432432 #define CHECKED_MERGE(field, ...) ((ret = ff_merge_ ## field(__VA_ARGS__)) <= 0)
433433 #define MERGE_DISPATCH(field, ...) \
434− if (!(link->in_ ## field && link->out_ ## field)) { \
434+ if (!(link->incfg.field && link->outcfg.field)) { \
435435 count_delayed++; \
436− } else if (link->in_ ## field == link->out_ ## field) { \
436+ } else if (link->incfg.field == link->outcfg.field) { \
437437 count_already_merged++; \
438438 } else if (!convert_needed) { \
439439 count_merged++; \
@@ -445,13 +445,13 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx) · 5 unmodified lines
445445 }
446446
447447 if (link->type == AVMEDIA_TYPE_AUDIO) {
448− MERGE_DISPATCH(channel_layouts, link->in_channel_layouts,
449− link->out_channel_layouts)
450− MERGE_DISPATCH(samplerates, link->in_samplerates,
451− link->out_samplerates)
448+ MERGE_DISPATCH(channel_layouts, link->incfg.channel_layouts,
449+ link->outcfg.channel_layouts)
450+ MERGE_DISPATCH(samplerates, link->incfg.samplerates,
451+ link->outcfg.samplerates)
452452 }
453− MERGE_DISPATCH(formats, link->in_formats,
454− link->out_formats, link->type)
453+ MERGE_DISPATCH(formats, link->incfg.formats,
454+ link->outcfg.formats, link->type)
455455 #undef MERGE_DISPATCH
456456
457457 if (convert_needed) {
@@ -511,34 +511,34 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx) · 53 unmodified lines
511511
512512 inlink = convert->inputs[0];
513513 outlink = convert->outputs[0];
514− av_assert0( inlink-> in_formats->refcount > 0);
515− av_assert0( inlink->out_formats->refcount > 0);
516− av_assert0(outlink-> in_formats->refcount > 0);
517− av_assert0(outlink->out_formats->refcount > 0);
514+ av_assert0( inlink->incfg.formats->refcount > 0);
515+ av_assert0( inlink->outcfg.formats->refcount > 0);
516+ av_assert0(outlink->incfg.formats->refcount > 0);
517+ av_assert0(outlink->outcfg.formats->refcount > 0);
518518 if (outlink->type == AVMEDIA_TYPE_AUDIO) {
519− av_assert0( inlink-> in_samplerates->refcount > 0);
520− av_assert0( inlink->out_samplerates->refcount > 0);
521− av_assert0(outlink-> in_samplerates->refcount > 0);
522− av_assert0(outlink->out_samplerates->refcount > 0);
523− av_assert0( inlink-> in_channel_layouts->refcount > 0);
524− av_assert0( inlink->out_channel_layouts->refcount > 0);
525− av_assert0(outlink-> in_channel_layouts->refcount > 0);
526− av_assert0(outlink->out_channel_layouts->refcount > 0);
519+ av_assert0( inlink-> incfg.samplerates->refcount > 0);
520+ av_assert0( inlink->outcfg.samplerates->refcount > 0);
521+ av_assert0(outlink-> incfg.samplerates->refcount > 0);
522+ av_assert0(outlink->outcfg.samplerates->refcount > 0);
523+ av_assert0( inlink-> incfg.channel_layouts->refcount > 0);
524+ av_assert0( inlink->outcfg.channel_layouts->refcount > 0);
525+ av_assert0(outlink-> incfg.channel_layouts->refcount > 0);
526+ av_assert0(outlink->outcfg.channel_layouts->refcount > 0);
527527 }
528− if (CHECKED_MERGE(formats, inlink->in_formats,
529− inlink->out_formats, inlink->type) ||
530− CHECKED_MERGE(formats, outlink->in_formats,
531− outlink->out_formats, outlink->type) ||
528+ if (CHECKED_MERGE(formats, inlink->incfg.formats,
529+ inlink->outcfg.formats, inlink->type) ||
530+ CHECKED_MERGE(formats, outlink->incfg.formats,
531+ outlink->outcfg.formats, outlink->type) ||
532532 inlink->type == AVMEDIA_TYPE_AUDIO &&
533− (CHECKED_MERGE(samplerates, inlink->in_samplerates,
534− inlink->out_samplerates) ||
535− CHECKED_MERGE(channel_layouts, inlink->in_channel_layouts,
536− inlink->out_channel_layouts)) ||
533+ (CHECKED_MERGE(samplerates, inlink->incfg.samplerates,
534+ inlink->outcfg.samplerates) ||
535+ CHECKED_MERGE(channel_layouts, inlink->incfg.channel_layouts,
536+ inlink->outcfg.channel_layouts)) ||
537537 outlink->type == AVMEDIA_TYPE_AUDIO &&
538− (CHECKED_MERGE(samplerates, outlink->in_samplerates,
539− outlink->out_samplerates) ||
540− CHECKED_MERGE(channel_layouts, outlink->in_channel_layouts,
541− outlink->out_channel_layouts))) {
538+ (CHECKED_MERGE(samplerates, outlink->incfg.samplerates,
539+ outlink->outcfg.samplerates) ||
540+ CHECKED_MERGE(channel_layouts, outlink->incfg.channel_layouts,
541+ outlink->outcfg.channel_layouts))) {
542542 if (ret < 0)
543543 return ret;
544544 av_log(log_ctx, AV_LOG_ERROR,
@@ -613,7 +613,7 @@ static enum AVSampleFormat find_best_sample_fmt_of_2(enum AVSampleFormat dst_fmt · 68 unmodified lines
613613
614614 static int pick_format(AVFilterLink *link, AVFilterLink *ref)
615615 {
616− if (!link || !link->in_formats)
616+ if (!link || !link->incfg.formats)
617617 return 0;
618618
619619 if (link->type == AVMEDIA_TYPE_VIDEO) {
@@ -622,67 +622,67 @@ static int pick_format(AVFilterLink *link, AVFilterLink *ref) · 2 unmodified lines
622622 int has_alpha= av_pix_fmt_desc_get(ref->format)->nb_components % 2 == 0;
623623 enum AVPixelFormat best= AV_PIX_FMT_NONE;
624624 int i;
625− for (i=0; i<link->in_formats->nb_formats; i++) {
626− enum AVPixelFormat p = link->in_formats->formats[i];
625+ for (i = 0; i < link->incfg.formats->nb_formats; i++) {
626+ enum AVPixelFormat p = link->incfg.formats->formats[i];
627627 best= av_find_best_pix_fmt_of_2(best, p, ref->format, has_alpha, NULL);
628628 }
629629 av_log(link->src,AV_LOG_DEBUG, "picking %s out of %d ref:%s alpha:%d\n",
630− av_get_pix_fmt_name(best), link->in_formats->nb_formats,
630+ av_get_pix_fmt_name(best), link->incfg.formats->nb_formats,
631631 av_get_pix_fmt_name(ref->format), has_alpha);
632− link->in_formats->formats[0] = best;
632+ link->incfg.formats->formats[0] = best;
633633 }
634634 } else if (link->type == AVMEDIA_TYPE_AUDIO) {
635635 if(ref && ref->type == AVMEDIA_TYPE_AUDIO){
636636 enum AVSampleFormat best= AV_SAMPLE_FMT_NONE;
637637 int i;
638− for (i=0; i<link->in_formats->nb_formats; i++) {
639− enum AVSampleFormat p = link->in_formats->formats[i];
638+ for (i = 0; i < link->incfg.formats->nb_formats; i++) {
639+ enum AVSampleFormat p = link->incfg.formats->formats[i];
640640 best = find_best_sample_fmt_of_2(best, p, ref->format);
641641 }
642642 av_log(link->src,AV_LOG_DEBUG, "picking %s out of %d ref:%s\n",
643− av_get_sample_fmt_name(best), link->in_formats->nb_formats,
643+ av_get_sample_fmt_name(best), link->incfg.formats->nb_formats,
644644 av_get_sample_fmt_name(ref->format));
645− link->in_formats->formats[0] = best;
645+ link->incfg.formats->formats[0] = best;
646646 }
647647 }
648648
649− link->in_formats->nb_formats = 1;
650− link->format = link->in_formats->formats[0];
649+ link->incfg.formats->nb_formats = 1;
650+ link->format = link->incfg.formats->formats[0];
651651
652652 if (link->type == AVMEDIA_TYPE_AUDIO) {
653− if (!link->in_samplerates->nb_formats) {
653+ if (!link->incfg.samplerates->nb_formats) {
654654 av_log(link->src, AV_LOG_ERROR, "Cannot select sample rate for"
655655 " the link between filters %s and %s.\n", link->src->name,
656656 link->dst->name);
657657 return AVERROR(EINVAL);
658658 }
659− link->in_samplerates->nb_formats = 1;
660− link->sample_rate = link->in_samplerates->formats[0];
659+ link->incfg.samplerates->nb_formats = 1;
660+ link->sample_rate = link->incfg.samplerates->formats[0];
661661
662− if (link->in_channel_layouts->all_layouts) {
662+ if (link->incfg.channel_layouts->all_layouts) {
663663 av_log(link->src, AV_LOG_ERROR, "Cannot select channel layout for"
664664 " the link between filters %s and %s.\n", link->src->name,
665665 link->dst->name);
666− if (!link->in_channel_layouts->all_counts)
666+ if (!link->incfg.channel_layouts->all_counts)
667667 av_log(link->src, AV_LOG_ERROR, "Unknown channel layouts not "
668668 "supported, try specifying a channel layout using "
669669 "'aformat=channel_layouts=something'.\n");
670670 return AVERROR(EINVAL);
671671 }
672− link->in_channel_layouts->nb_channel_layouts = 1;
673− link->channel_layout = link->in_channel_layouts->channel_layouts[0];
672+ link->incfg.channel_layouts->nb_channel_layouts = 1;
673+ link->channel_layout = link->incfg.channel_layouts->channel_layouts[0];
674674 if ((link->channels = FF_LAYOUT2COUNT(link->channel_layout)))
675675 link->channel_layout = 0;
676676 else
677677 link->channels = av_get_channel_layout_nb_channels(link->channel_layout);
678678 }
679679
680− ff_formats_unref(&link->in_formats);
681− ff_formats_unref(&link->out_formats);
682− ff_formats_unref(&link->in_samplerates);
683− ff_formats_unref(&link->out_samplerates);
684− ff_channel_layouts_unref(&link->in_channel_layouts);
685− ff_channel_layouts_unref(&link->out_channel_layouts);
680+ ff_formats_unref(&link->incfg.formats);
681+ ff_formats_unref(&link->outcfg.formats);
682+ ff_formats_unref(&link->incfg.samplerates);
683+ ff_formats_unref(&link->outcfg.samplerates);
684+ ff_channel_layouts_unref(&link->incfg.channel_layouts);
685+ ff_channel_layouts_unref(&link->outcfg.channel_layouts);
686686
687687 return 0;
688688 }
@@ -693,27 +693,27 @@ do { \ · 4 unmodified lines
693693 AVFilterLink *link = filter->inputs[i]; \
694694 fmt_type fmt; \
695695 \
696− if (!link->out_ ## list || link->out_ ## list->nb != 1) \
696+ if (!link->outcfg.list || link->outcfg.list->nb != 1) \
697697 continue; \
698− fmt = link->out_ ## list->var[0]; \
698+ fmt = link->outcfg.list->var[0]; \
699699 \
700700 for (j = 0; j < filter->nb_outputs; j++) { \
701701 AVFilterLink *out_link = filter->outputs[j]; \
702702 list_type *fmts; \
703703 \
704704 if (link->type != out_link->type || \
705− out_link->in_ ## list->nb == 1) \
705+ out_link->incfg.list->nb == 1) \
706706 continue; \
707− fmts = out_link->in_ ## list; \
707+ fmts = out_link->incfg.list; \
708708 \
709− if (!out_link->in_ ## list->nb) { \
710− if ((ret = add_format(&out_link->in_ ##list, fmt)) < 0)\
709+ if (!out_link->incfg.list->nb) { \
710+ if ((ret = add_format(&out_link->incfg.list, fmt)) < 0)\
711711 return ret; \
712712 ret = 1; \
713713 break; \
714714 } \
715715 \
716− for (k = 0; k < out_link->in_ ## list->nb; k++) \
716+ for (k = 0; k < out_link->incfg.list->nb; k++) \
717717 if (fmts->var[k] == fmt) { \
718718 fmts->var[0] = fmt; \
719719 fmts->nb = 1; \
@@ -738,16 +738,16 @@ static int reduce_formats_on_filter(AVFilterContext *filter) · 18 unmodified lines
738738 AVFilterLink *inlink = filter->inputs[i];
739739 uint64_t fmt;
740740
741− if (!inlink->out_channel_layouts ||
742− inlink->out_channel_layouts->nb_channel_layouts != 1)
741+ if (!inlink->outcfg.channel_layouts ||
742+ inlink->outcfg.channel_layouts->nb_channel_layouts != 1)
743743 continue;
744− fmt = inlink->out_channel_layouts->channel_layouts[0];
744+ fmt = inlink->outcfg.channel_layouts->channel_layouts[0];
745745
746746 for (j = 0; j < filter->nb_outputs; j++) {
747747 AVFilterLink *outlink = filter->outputs[j];
748748 AVFilterChannelLayouts *fmts;
749749
750− fmts = outlink->in_channel_layouts;
750+ fmts = outlink->incfg.channel_layouts;
751751 if (inlink->type != outlink->type || fmts->nb_channel_layouts == 1)
752752 continue;
753753
@@ -755,12 +755,12 @@ static int reduce_formats_on_filter(AVFilterContext *filter) · 1 unmodified line
755755 (!FF_LAYOUT2COUNT(fmt) || fmts->all_counts)) {
756756 /* Turn the infinite list into a singleton */
757757 fmts->all_layouts = fmts->all_counts = 0;
758− if (ff_add_channel_layout(&outlink->in_channel_layouts, fmt) < 0)
758+ if (ff_add_channel_layout(&outlink->incfg.channel_layouts, fmt) < 0)
759759 ret = 1;
760760 break;
761761 }
762762
763− for (k = 0; k < outlink->in_channel_layouts->nb_channel_layouts; k++) {
763+ for (k = 0; k < outlink->incfg.channel_layouts->nb_channel_layouts; k++) {
764764 if (fmts->channel_layouts[k] == fmt) {
765765 fmts->channel_layouts[0] = fmt;
766766 fmts->nb_channel_layouts = 1;
@@ -801,24 +801,24 @@ static void swap_samplerates_on_filter(AVFilterContext *filter) · 34 unmodified lines
801801 link = filter->inputs[i];
802802
803803 if (link->type == AVMEDIA_TYPE_AUDIO &&
804− link->out_samplerates->nb_formats== 1)
804+ link->outcfg.samplerates->nb_formats== 1)
805805 break;
806806 }
807807 if (i == filter->nb_inputs)
808808 return;
809809
810− sample_rate = link->out_samplerates->formats[0];
810+ sample_rate = link->outcfg.samplerates->formats[0];
811811
812812 for (i = 0; i < filter->nb_outputs; i++) {
813813 AVFilterLink *outlink = filter->outputs[i];
814814 int best_idx, best_diff = INT_MAX;
815815
816816 if (outlink->type != AVMEDIA_TYPE_AUDIO ||
817− outlink->in_samplerates->nb_formats < 2)
817+ outlink->incfg.samplerates->nb_formats < 2)
818818 continue;
819819
820− for (j = 0; j < outlink->in_samplerates->nb_formats; j++) {
821− int diff = abs(sample_rate - outlink->in_samplerates->formats[j]);
820+ for (j = 0; j < outlink->incfg.samplerates->nb_formats; j++) {
821+ int diff = abs(sample_rate - outlink->incfg.samplerates->formats[j]);
822822
823823 av_assert0(diff < INT_MAX); // This would lead to the use of uninitialized best_diff but is only possible with invalid sample rates
824824
@@ -827,8 +827,8 @@ static void swap_samplerates_on_filter(AVFilterContext *filter) · 2 unmodified lines
827827 best_idx = j;
828828 }
829829 }
830− FFSWAP(int, outlink->in_samplerates->formats[0],
831− outlink->in_samplerates->formats[best_idx]);
830+ FFSWAP(int, outlink->incfg.samplerates->formats[0],
831+ outlink->incfg.samplerates->formats[best_idx]);
832832 }
833833 }
834834
@@ -883,7 +883,7 @@ static void swap_channel_layouts_on_filter(AVFilterContext *filter) · 48 unmodified lines
883883 link = filter->inputs[i];
884884
885885 if (link->type == AVMEDIA_TYPE_AUDIO &&
886− link->out_channel_layouts->nb_channel_layouts == 1)
886+ link->outcfg.channel_layouts->nb_channel_layouts == 1)
887887 break;
888888 }
889889 if (i == filter->nb_inputs)
@@ -894,12 +894,12 @@ static void swap_channel_layouts_on_filter(AVFilterContext *filter) · 4 unmodified lines
894894 int best_idx = -1, best_score = INT_MIN, best_count_diff = INT_MAX;
895895
896896 if (outlink->type != AVMEDIA_TYPE_AUDIO ||
897− outlink->in_channel_layouts->nb_channel_layouts < 2)
897+ outlink->incfg.channel_layouts->nb_channel_layouts < 2)
898898 continue;
899899
900− for (j = 0; j < outlink->in_channel_layouts->nb_channel_layouts; j++) {
901− uint64_t in_chlayout = link->out_channel_layouts->channel_layouts[0];
902− uint64_t out_chlayout = outlink->in_channel_layouts->channel_layouts[j];
900+ for (j = 0; j < outlink->incfg.channel_layouts->nb_channel_layouts; j++) {
901+ uint64_t in_chlayout = link->outcfg.channel_layouts->channel_layouts[0];
902+ uint64_t out_chlayout = outlink->incfg.channel_layouts->channel_layouts[j];
903903 int in_channels = av_get_channel_layout_nb_channels(in_chlayout);
904904 int out_channels = av_get_channel_layout_nb_channels(out_chlayout);
905905 int count_diff = out_channels - in_channels;
@@ -957,8 +957,8 @@ static void swap_channel_layouts_on_filter(AVFilterContext *filter) · 51 unmodified lines
957957 }
958958 }
959959 av_assert0(best_idx >= 0);
960− FFSWAP(uint64_t, outlink->in_channel_layouts->channel_layouts[0],
961− outlink->in_channel_layouts->channel_layouts[best_idx]);
960+ FFSWAP(uint64_t, outlink->incfg.channel_layouts->channel_layouts[0],
961+ outlink->incfg.channel_layouts->channel_layouts[best_idx]);
962962 }
963963
964964 }
@@ -981,13 +981,13 @@ static void swap_sample_fmts_on_filter(AVFilterContext *filter) · 16 unmodified lines
981981 link = filter->inputs[i];
982982
983983 if (link->type == AVMEDIA_TYPE_AUDIO &&
984− link->out_formats->nb_formats == 1)
984+ link->outcfg.formats->nb_formats == 1)
985985 break;
986986 }
987987 if (i == filter->nb_inputs)
988988 return;
989989
990− format = link->out_formats->formats[0];
990+ format = link->outcfg.formats->formats[0];
991991 bps = av_get_bytes_per_sample(format);
992992
993993 for (i = 0; i < filter->nb_outputs; i++) {
@@ -995,11 +995,11 @@ static void swap_sample_fmts_on_filter(AVFilterContext *filter) · 1 unmodified line
995995 int best_idx = -1, best_score = INT_MIN;
996996
997997 if (outlink->type != AVMEDIA_TYPE_AUDIO ||
998− outlink->in_formats->nb_formats < 2)
998+ outlink->incfg.formats->nb_formats < 2)
999999 continue;
10001000
1001− for (j = 0; j < outlink->in_formats->nb_formats; j++) {
1002− int out_format = outlink->in_formats->formats[j];
1001+ for (j = 0; j < outlink->incfg.formats->nb_formats; j++) {
1002+ int out_format = outlink->incfg.formats->formats[j];
10031003 int out_bps = av_get_bytes_per_sample(out_format);
10041004 int score;
10051005
@@ -1026,8 +1026,8 @@ static void swap_sample_fmts_on_filter(AVFilterContext *filter) · 20 unmodified lines
10261026 }
10271027 }
10281028 av_assert0(best_idx >= 0);
1029− FFSWAP(int, outlink->in_formats->formats[0],
1030− outlink->in_formats->formats[best_idx]);
1029+ FFSWAP(int, outlink->incfg.formats->formats[0],
1030+ outlink->incfg.formats->formats[best_idx]);
10311031 }
10321032 }
10331033
@@ -1051,7 +1051,7 @@ static int pick_formats(AVFilterGraph *graph) · 17 unmodified lines
10511051 AVFilterContext *filter = graph->filters[i];
10521052 if (filter->nb_inputs){
10531053 for (j = 0; j < filter->nb_inputs; j++){
1054− if(filter->inputs[j]->in_formats && filter->inputs[j]->in_formats->nb_formats == 1) {
1054+ if (filter->inputs[j]->incfg.formats && filter->inputs[j]->incfg.formats->nb_formats == 1) {
10551055 if ((ret = pick_format(filter->inputs[j], NULL)) < 0)
10561056 return ret;
10571057 change = 1;
@@ -1060,7 +1060,7 @@ static int pick_formats(AVFilterGraph *graph) · 2 unmodified lines
10601060 }
10611061 if (filter->nb_outputs){
10621062 for (j = 0; j < filter->nb_outputs; j++){
1063− if(filter->outputs[j]->in_formats && filter->outputs[j]->in_formats->nb_formats == 1) {
1063+ if (filter->outputs[j]->incfg.formats && filter->outputs[j]->incfg.formats->nb_formats == 1) {
10641064 if ((ret = pick_format(filter->outputs[j], NULL)) < 0)
10651065 return ret;
10661066 change = 1;
@@ -1069,7 +1069,7 @@ static int pick_formats(AVFilterGraph *graph) · 2 unmodified lines
10691069 }
10701070 if (filter->nb_inputs && filter->nb_outputs && filter->inputs[0]->format>=0) {
10711071 for (j = 0; j < filter->nb_outputs; j++) {
1072− if(filter->outputs[j]->format<0) {
1072+ if (filter->outputs[j]->format<0) {
10731073 if ((ret = pick_format(filter->outputs[j], filter->inputs[0])) < 0)
10741074 return ret;
10751075 change = 1;
libavfilter/f_drawgraph.c+1−1
@@ -134,7 +134,7 @@ static int query_formats(AVFilterContext *ctx) · 133 unmodified lines
134134 int ret;
135135
136136 AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts);
137− if ((ret = ff_formats_ref(fmts_list, &outlink->in_formats)) < 0)
137+ if ((ret = ff_formats_ref(fmts_list, &outlink->incfg.formats)) < 0)
138138 return ret;
139139
140140 return 0;
libavfilter/f_ebur128.c+7−7
@@ -902,7 +902,7 @@ static int query_formats(AVFilterContext *ctx) · 901 unmodified lines
902902 /* set optional output video format */
903903 if (ebur128->do_video) {
904904 formats = ff_make_format_list(pix_fmts);
905− if ((ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
905+ if ((ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
906906 return ret;
907907 outlink = ctx->outputs[1];
908908 }
@@ -911,18 +911,18 @@ static int query_formats(AVFilterContext *ctx) · 2 unmodified lines
911911 * Note: ff_set_common_* functions are not used because they affect all the
912912 * links, and thus break the video format negotiation */
913913 formats = ff_make_format_list(sample_fmts);
914− if ((ret = ff_formats_ref(formats, &inlink->out_formats)) < 0 ||
915− (ret = ff_formats_ref(formats, &outlink->in_formats)) < 0)
914+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.formats)) < 0 ||
915+ (ret = ff_formats_ref(formats, &outlink->incfg.formats)) < 0)
916916 return ret;
917917
918918 layouts = ff_all_channel_layouts();
919− if ((ret = ff_channel_layouts_ref(layouts, &inlink->out_channel_layouts)) < 0 ||
920− (ret = ff_channel_layouts_ref(layouts, &outlink->in_channel_layouts)) < 0)
919+ if ((ret = ff_channel_layouts_ref(layouts, &inlink->outcfg.channel_layouts)) < 0 ||
920+ (ret = ff_channel_layouts_ref(layouts, &outlink->incfg.channel_layouts)) < 0)
921921 return ret;
922922
923923 formats = ff_make_format_list(input_srate);
924− if ((ret = ff_formats_ref(formats, &inlink->out_samplerates)) < 0 ||
925− (ret = ff_formats_ref(formats, &outlink->in_samplerates)) < 0)
924+ if ((ret = ff_formats_ref(formats, &inlink->outcfg.samplerates)) < 0 ||
925+ (ret = ff_formats_ref(formats, &outlink->incfg.samplerates)) < 0)
926926 return ret;
927927
928928 return 0;
libavfilter/f_graphmonitor.c+1−1
@@ -103,7 +103,7 @@ static int query_formats(AVFilterContext *ctx) · 102 unmodified lines
103103 int ret;
104104
105105 AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts);
106− if ((ret = ff_formats_ref(fmts_list, &outlink->in_formats)) < 0)
106+ if ((ret = ff_formats_ref(fmts_list, &outlink->incfg.formats)) < 0)
107107 return ret;
108108
109109 return 0;
libavfilter/formats.c+3−3
@@ -569,14 +569,14 @@ void ff_formats_changeref(AVFilterFormats **oldref, AVFilterFormats **newref) · 568 unmodified lines
569569 int ff_set_common_channel_layouts(AVFilterContext *ctx,
570570 AVFilterChannelLayouts *layouts)
571571 {
572− SET_COMMON_FORMATS(ctx, layouts, in_channel_layouts, out_channel_layouts,
572+ SET_COMMON_FORMATS(ctx, layouts, incfg.channel_layouts, outcfg.channel_layouts,
573573 ff_channel_layouts_ref, ff_channel_layouts_unref);
574574 }
575575
576576 int ff_set_common_samplerates(AVFilterContext *ctx,
577577 AVFilterFormats *samplerates)
578578 {
579− SET_COMMON_FORMATS(ctx, samplerates, in_samplerates, out_samplerates,
579+ SET_COMMON_FORMATS(ctx, samplerates, incfg.samplerates, outcfg.samplerates,
580580 ff_formats_ref, ff_formats_unref);
581581 }
582582
@@ -587,7 +587,7 @@ int ff_set_common_samplerates(AVFilterContext *ctx, · 4 unmodified lines
587587 */
588588 int ff_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats)
589589 {
590− SET_COMMON_FORMATS(ctx, formats, in_formats, out_formats,
590+ SET_COMMON_FORMATS(ctx, formats, incfg.formats, outcfg.formats,
591591 ff_formats_ref, ff_formats_unref);
592592 }
593593
libavfilter/src_movie.c+4−4
@@ -362,19 +362,19 @@ static int movie_query_formats(AVFilterContext *ctx) · 361 unmodified lines
362362 switch (c->codec_type) {
363363 case AVMEDIA_TYPE_VIDEO:
364364 list[0] = c->format;
365− if ((ret = ff_formats_ref(ff_make_format_list(list), &outlink->in_formats)) < 0)
365+ if ((ret = ff_formats_ref(ff_make_format_list(list), &outlink->incfg.formats)) < 0)
366366 return ret;
367367 break;
368368 case AVMEDIA_TYPE_AUDIO:
369369 list[0] = c->format;
370− if ((ret = ff_formats_ref(ff_make_format_list(list), &outlink->in_formats)) < 0)
370+ if ((ret = ff_formats_ref(ff_make_format_list(list), &outlink->incfg.formats)) < 0)
371371 return ret;
372372 list[0] = c->sample_rate;
373− if ((ret = ff_formats_ref(ff_make_format_list(list), &outlink->in_samplerates)) < 0)
373+ if ((ret = ff_formats_ref(ff_make_format_list(list), &outlink->incfg.samplerates)) < 0)
374374 return ret;
375375 list64[0] = c->channel_layout;
376376 if ((ret = ff_channel_layouts_ref(ff_make_format64_list(list64),
377− &outlink->in_channel_layouts)) < 0)
377+ &outlink->incfg.channel_layouts)) < 0)
378378 return ret;
379379 break;
380380 }
libavfilter/tests/filtfmts.c+3−3
@@ -40,7 +40,7 @@ static void print_formats(AVFilterContext *filter_ctx) · 39 unmodified lines
4040 for (i = 0; i < filter_ctx->nb_##inout##puts; i++) { \
4141 if (filter_ctx->inout##puts[i]->type == AVMEDIA_TYPE_VIDEO) { \
4242 AVFilterFormats *fmts = \
43− filter_ctx->inout##puts[i]->outin##_formats; \
43+ filter_ctx->inout##puts[i]->outin##cfg.formats; \
4444 for (j = 0; j < fmts->nb_formats; j++) \
4545 if(av_get_pix_fmt_name(fmts->formats[j])) \
4646 printf(#INOUT "PUT[%d] %s: fmt:%s\n", \
@@ -50,13 +50,13 @@ static void print_formats(AVFilterContext *filter_ctx) · 3 unmodified lines
5050 AVFilterFormats *fmts; \
5151 AVFilterChannelLayouts *layouts; \
5252 \
53− fmts = filter_ctx->inout##puts[i]->outin##_formats; \
53+ fmts = filter_ctx->inout##puts[i]->outin##cfg.formats; \
5454 for (j = 0; j < fmts->nb_formats; j++) \
5555 printf(#INOUT "PUT[%d] %s: fmt:%s\n", \
5656 i, avfilter_pad_get_name(filter_ctx->inout##put_pads, i), \
5757 av_get_sample_fmt_name(fmts->formats[j])); \
5858 \
59− layouts = filter_ctx->inout##puts[i]->outin##_channel_layouts; \
59+ layouts = filter_ctx->inout##puts[i]->outin##cfg.channel_layouts; \
6060 for (j = 0; j < layouts->nb_channel_layouts; j++) { \
6161 char buf[256]; \
6262 av_get_channel_layout_string(buf, sizeof(buf), -1, \
libavfilter/vaapi_vpp.c+2−2
@@ -32,10 +32,10 @@ int ff_vaapi_vpp_query_formats(AVFilterContext *avctx) · 31 unmodified lines
3232 int err;
3333
3434 if ((err = ff_formats_ref(ff_make_format_list(pix_fmts),
35− &avctx->inputs[0]->out_formats)) < 0)
35+ &avctx->inputs[0]->outcfg.formats)) < 0)
3636 return err;
3737 if ((err = ff_formats_ref(ff_make_format_list(pix_fmts),
38− &avctx->outputs[0]->in_formats)) < 0)
38+ &avctx->outputs[0]->incfg.formats)) < 0)
3939 return err;
4040
4141 return 0;
libavfilter/vaf_spectrumsynth.c+5−5
@@ -115,28 +115,28 @@ static int query_formats(AVFilterContext *ctx) · 114 unmodified lines
115115 int ret, sample_rates[] = { 48000, -1 };
116116
117117 formats = ff_make_format_list(sample_fmts);
118− if ((ret = ff_formats_ref (formats, &outlink->in_formats )) < 0 ||
118+ if ((ret = ff_formats_ref (formats, &outlink->incfg.formats )) < 0 ||
119119 (ret = ff_add_channel_layout (&layout, FF_COUNT2LAYOUT(s->channels))) < 0 ||
120− (ret = ff_channel_layouts_ref (layout , &outlink->in_channel_layouts)) < 0)
120+ (ret = ff_channel_layouts_ref (layout , &outlink->incfg.channel_layouts)) < 0)
121121 return ret;
122122
123123 sample_rates[0] = s->sample_rate;
124124 formats = ff_make_format_list(sample_rates);
125125 if (!formats)
126126 return AVERROR(ENOMEM);
127− if ((ret = ff_formats_ref(formats, &outlink->in_samplerates)) < 0)
127+ if ((ret = ff_formats_ref(formats, &outlink->incfg.samplerates)) < 0)
128128 return ret;
129129
130130 formats = ff_make_format_list(pix_fmts);
131131 if (!formats)
132132 return AVERROR(ENOMEM);
133− if ((ret = ff_formats_ref(formats, &magnitude->out_formats)) < 0)
133+ if ((ret = ff_formats_ref(formats, &magnitude->outcfg.formats)) < 0)
134134 return ret;
135135
136136 formats = ff_make_format_list(pix_fmts);
137137 if (!formats)
138138 return AVERROR(ENOMEM);
139− if ((ret = ff_formats_ref(formats, &phase->out_formats)) < 0)
139+ if ((ret = ff_formats_ref(formats, &phase->outcfg.formats)) < 0)
140140 return ret;
141141
142142 return 0;
libavfilter/vf_alphamerge.c+3−3
@@ -103,12 +103,12 @@ static int query_formats(AVFilterContext *ctx) · 102 unmodified lines
103103 AVFilterFormats *main_formats = ff_make_format_list(main_fmts);
104104 int ret;
105105
106− if ((ret = ff_formats_ref(main_formats, &ctx->inputs[0]->out_formats)) < 0 ||
107− (ret = ff_formats_ref(main_formats, &ctx->outputs[0]->in_formats)) < 0)
106+ if ((ret = ff_formats_ref(main_formats, &ctx->inputs[0]->outcfg.formats)) < 0 ||
107+ (ret = ff_formats_ref(main_formats, &ctx->outputs[0]->incfg.formats)) < 0)
108108 return ret;
109109
110110 return ff_formats_ref(ff_make_format_list(alpha_fmts),
111− &ctx->inputs[1]->out_formats);
111+ &ctx->inputs[1]->outcfg.formats);
112112 }
113113
114114 static int config_input_main(AVFilterLink *inlink)
libavfilter/vf_ciescope.c+2−2
@@ -139,10 +139,10 @@ static int query_formats(AVFilterContext *ctx) · 138 unmodified lines
139139 {
140140 int ret;
141141
142− if ((ret = ff_formats_ref(ff_make_format_list(in_pix_fmts), &ctx->inputs[0]->out_formats)) < 0)
142+ if ((ret = ff_formats_ref(ff_make_format_list(in_pix_fmts), &ctx->inputs[0]->outcfg.formats)) < 0)
143143 return ret;
144144
145− if ((ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->in_formats)) < 0)
145+ if ((ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->incfg.formats)) < 0)
146146 return ret;
147147
148148 return 0;
libavfilter/vf_colorspace.c+2−2
@@ -896,7 +896,7 @@ static int query_formats(AVFilterContext *ctx) · 895 unmodified lines
896896 return AVERROR(ENOMEM);
897897 if (s->user_format == AV_PIX_FMT_NONE)
898898 return ff_set_common_formats(ctx, formats);
899− res = ff_formats_ref(formats, &ctx->inputs[0]->out_formats);
899+ res = ff_formats_ref(formats, &ctx->inputs[0]->outcfg.formats);
900900 if (res < 0)
901901 return res;
902902 formats = NULL;
@@ -904,7 +904,7 @@ static int query_formats(AVFilterContext *ctx) · 1 unmodified line
904904 if (res < 0)
905905 return res;
906906
907− return ff_formats_ref(formats, &ctx->outputs[0]->in_formats);
907+ return ff_formats_ref(formats, &ctx->outputs[0]->incfg.formats);
908908 }
909909
910910 static int config_props(AVFilterLink *outlink)
libavfilter/vf_coreimage.m+3−3
@@ -149,8 +149,8 @@ static int query_formats(AVFilterContext *fctx) · 148 unmodified lines
149149 return AVERROR(ENOMEM);
150150 }
151151
152− if ((ret = ff_formats_ref(inout_formats, &fctx->inputs[0]->out_formats)) < 0 ||
153− (ret = ff_formats_ref(inout_formats, &fctx->outputs[0]->in_formats)) < 0) {
152+ if ((ret = ff_formats_ref(inout_formats, &fctx->inputs[0]->outcfg.formats)) < 0 ||
153+ (ret = ff_formats_ref(inout_formats, &fctx->outputs[0]->incfg.formats)) < 0) {
154154 return ret;
155155 }
156156
@@ -171,7 +171,7 @@ static int query_formats_src(AVFilterContext *fctx) · 14 unmodified lines
171171 return AVERROR(ENOMEM);
172172 }
173173
174− if ((ret = ff_formats_ref(inout_formats, &fctx->outputs[0]->in_formats)) < 0) {
174+ if ((ret = ff_formats_ref(inout_formats, &fctx->outputs[0]->incfg.formats)) < 0) {
175175 return ret;
176176 }
177177
libavfilter/vf_elbg.c+2−2
@@ -100,8 +100,8 @@ static int query_formats(AVFilterContext *ctx) · 99 unmodified lines
100100 AV_PIX_FMT_PAL8,
101101 AV_PIX_FMT_NONE
102102 };
103− if ((ret = ff_formats_ref(ff_make_format_list(pix_fmts), &ctx->inputs[0]->out_formats)) < 0 ||
104− (ret = ff_formats_ref(ff_make_format_list(pal8_fmt), &ctx->outputs[0]->in_formats)) < 0)
103+ if ((ret = ff_formats_ref(ff_make_format_list(pix_fmts), &ctx->inputs[0]->outcfg.formats)) < 0 ||
104+ (ret = ff_formats_ref(ff_make_format_list(pal8_fmt), &ctx->outputs[0]->incfg.formats)) < 0)
105105 return ret;
106106 }
107107 return 0;
libavfilter/vf_extractplanes.c+6−6
@@ -143,12 +143,12 @@ static int query_formats(AVFilterContext *ctx) · 142 unmodified lines
143143 AVFilterFormats *avff;
144144 int i, ret, depth = 0, be = 0;
145145
146− if (!ctx->inputs[0]->in_formats ||
147− !ctx->inputs[0]->in_formats->nb_formats) {
146+ if (!ctx->inputs[0]->incfg.formats ||
147+ !ctx->inputs[0]->incfg.formats->nb_formats) {
148148 return AVERROR(EAGAIN);
149149 }
150150
151− avff = ctx->inputs[0]->in_formats;
151+ avff = ctx->inputs[0]->incfg.formats;
152152 desc = av_pix_fmt_desc_get(avff->formats[0]);
153153 depth = desc->comp[0].depth;
154154 be = desc->flags & AV_PIX_FMT_FLAG_BE;
@@ -157,8 +157,8 @@ static int query_formats(AVFilterContext *ctx) · 2 unmodified lines
157157 } else {
158158 in_pixfmts = in_pixfmts_le;
159159 }
160− if (!ctx->inputs[0]->out_formats)
161− if ((ret = ff_formats_ref(ff_make_format_list(in_pixfmts), &ctx->inputs[0]->out_formats)) < 0)
160+ if (!ctx->inputs[0]->outcfg.formats)
161+ if ((ret = ff_formats_ref(ff_make_format_list(in_pixfmts), &ctx->inputs[0]->outcfg.formats)) < 0)
162162 return ret;
163163
164164 for (i = 1; i < avff->nb_formats; i++) {
@@ -193,7 +193,7 @@ static int query_formats(AVFilterContext *ctx) · 28 unmodified lines
193193 out_pixfmts = out16le_pixfmts;
194194
195195 for (i = 0; i < ctx->nb_outputs; i++)
196− if ((ret = ff_formats_ref(ff_make_format_list(out_pixfmts), &ctx->outputs[i]->in_formats)) < 0)
196+ if ((ret = ff_formats_ref(ff_make_format_list(out_pixfmts), &ctx->outputs[i]->incfg.formats)) < 0)
197197 return ret;
198198 return 0;
199199 }
libavfilter/vf_fieldmatch.c+3−3
@@ -917,14 +917,14 @@ static int query_formats(AVFilterContext *ctx) · 916 unmodified lines
917917 return ff_set_common_formats(ctx, fmts_list);
918918 }
919919
920− if ((ret = ff_formats_ref(fmts_list, &ctx->inputs[INPUT_MAIN]->out_formats)) < 0)
920+ if ((ret = ff_formats_ref(fmts_list, &ctx->inputs[INPUT_MAIN]->outcfg.formats)) < 0)
921921 return ret;
922922 fmts_list = ff_make_format_list(unproc_pix_fmts);
923923 if (!fmts_list)
924924 return AVERROR(ENOMEM);
925− if ((ret = ff_formats_ref(fmts_list, &ctx->outputs[0]->in_formats)) < 0)
925+ if ((ret = ff_formats_ref(fmts_list, &ctx->outputs[0]->incfg.formats)) < 0)
926926 return ret;
927− if ((ret = ff_formats_ref(fmts_list, &ctx->inputs[INPUT_CLEANSRC]->out_formats)) < 0)
927+ if ((ret = ff_formats_ref(fmts_list, &ctx->inputs[INPUT_CLEANSRC]->outcfg.formats)) < 0)
928928 return ret;
929929 return 0;
930930 }
libavfilter/vf_fieldorder.c+2−2
@@ -58,8 +58,8 @@ static int query_formats(AVFilterContext *ctx) · 57 unmodified lines
5858 (ret = ff_add_format(&formats, pix_fmt)) < 0)
5959 return ret;
6060 }
61− if ((ret = ff_formats_ref(formats, &ctx->inputs[0]->out_formats)) < 0 ||
62− (ret = ff_formats_ref(formats, &ctx->outputs[0]->in_formats)) < 0)
61+ if ((ret = ff_formats_ref(formats, &ctx->inputs[0]->outcfg.formats)) < 0 ||
62+ (ret = ff_formats_ref(formats, &ctx->outputs[0]->incfg.formats)) < 0)
6363 return ret;
6464 }
6565
libavfilter/vf_histogram.c+6−6
@@ -155,15 +155,15 @@ static int query_formats(AVFilterContext *ctx) · 154 unmodified lines
155155 int rgb, i, bits;
156156 int ret;
157157
158− if (!ctx->inputs[0]->in_formats ||
159− !ctx->inputs[0]->in_formats->nb_formats) {
158+ if (!ctx->inputs[0]->incfg.formats ||
159+ !ctx->inputs[0]->incfg.formats->nb_formats) {
160160 return AVERROR(EAGAIN);
161161 }
162162
163− if (!ctx->inputs[0]->out_formats)
164− if ((ret = ff_formats_ref(ff_make_format_list(levels_in_pix_fmts), &ctx->inputs[0]->out_formats)) < 0)
163+ if (!ctx->inputs[0]->outcfg.formats)
164+ if ((ret = ff_formats_ref(ff_make_format_list(levels_in_pix_fmts), &ctx->inputs[0]->outcfg.formats)) < 0)
165165 return ret;
166− avff = ctx->inputs[0]->in_formats;
166+ avff = ctx->inputs[0]->incfg.formats;
167167 desc = av_pix_fmt_desc_get(avff->formats[0]);
168168 rgb = desc->flags & AV_PIX_FMT_FLAG_RGB;
169169 bits = desc->comp[0].depth;
@@ -192,7 +192,7 @@ static int query_formats(AVFilterContext *ctx) · 22 unmodified lines
192192 out_pix_fmts = levels_out_yuv12_pix_fmts;
193193 else
194194 return AVERROR(EAGAIN);
195− if ((ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->in_formats)) < 0)
195+ if ((ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->incfg.formats)) < 0)
196196 return ret;
197197
198198 return 0;
libavfilter/vf_hwdownload.c+2−2
@@ -41,9 +41,9 @@ static int hwdownload_query_formats(AVFilterContext *avctx) · 40 unmodified lines
4141 int err;
4242
4343 if ((err = ff_formats_pixdesc_filter(&fmts, AV_PIX_FMT_FLAG_HWACCEL, 0)) ||
44− (err = ff_formats_ref(fmts, &avctx->inputs[0]->out_formats)) ||
44+ (err = ff_formats_ref(fmts, &avctx->inputs[0]->outcfg.formats)) ||
4545 (err = ff_formats_pixdesc_filter(&fmts, 0, AV_PIX_FMT_FLAG_HWACCEL)) ||
46− (err = ff_formats_ref(fmts, &avctx->outputs[0]->in_formats)))
46+ (err = ff_formats_ref(fmts, &avctx->outputs[0]->incfg.formats)))
4747 return err;
4848
4949 return 0;
libavfilter/vf_hwmap.c+2−2
@@ -42,9 +42,9 @@ static int hwmap_query_formats(AVFilterContext *avctx) · 41 unmodified lines
4242 int ret;
4343
4444 if ((ret = ff_formats_ref(ff_all_formats(AVMEDIA_TYPE_VIDEO),
45− &avctx->inputs[0]->out_formats)) < 0 ||
45+ &avctx->inputs[0]->outcfg.formats)) < 0 ||
4646 (ret = ff_formats_ref(ff_all_formats(AVMEDIA_TYPE_VIDEO),
47− &avctx->outputs[0]->in_formats)) < 0)
47+ &avctx->outputs[0]->incfg.formats)) < 0)
4848 return ret;
4949
5050 return 0;
libavfilter/vf_hwupload.c+2−2
@@ -90,9 +90,9 @@ static int hwupload_query_formats(AVFilterContext *avctx) · 89 unmodified lines
9090 }
9191 }
9292
93− if ((err = ff_formats_ref(input_formats, &avctx->inputs[0]->out_formats)) < 0 ||
93+ if ((err = ff_formats_ref(input_formats, &avctx->inputs[0]->outcfg.formats)) < 0 ||
9494 (err = ff_formats_ref(ff_make_format_list(output_pix_fmts),
95− &avctx->outputs[0]->in_formats)) < 0)
95+ &avctx->outputs[0]->incfg.formats)) < 0)
9696 goto fail;
9797
9898 av_hwframe_constraints_free(&constraints);
libavfilter/vf_hwupload_cuda.c+2−2
@@ -71,13 +71,13 @@ static int cudaupload_query_formats(AVFilterContext *ctx) · 70 unmodified lines
7171 AVFilterFormats *in_fmts = ff_make_format_list(input_pix_fmts);
7272 AVFilterFormats *out_fmts;
7373
74− ret = ff_formats_ref(in_fmts, &ctx->inputs[0]->out_formats);
74+ ret = ff_formats_ref(in_fmts, &ctx->inputs[0]->outcfg.formats);
7575 if (ret < 0)
7676 return ret;
7777
7878 out_fmts = ff_make_format_list(output_pix_fmts);
7979
80− ret = ff_formats_ref(out_fmts, &ctx->outputs[0]->in_formats);
80+ ret = ff_formats_ref(out_fmts, &ctx->outputs[0]->incfg.formats);
8181 if (ret < 0)
8282 return ret;
8383
libavfilter/vf_lut2.c+2−2
@@ -177,7 +177,7 @@ static int query_formats(AVFilterContext *ctx) · 176 unmodified lines
177177 if (s->tlut2 || !s->odepth)
178178 return ff_set_common_formats(ctx, ff_make_format_list(all_pix_fmts));
179179
180− ret = ff_formats_ref(ff_make_format_list(all_pix_fmts), &ctx->inputs[0]->out_formats);
180+ ret = ff_formats_ref(ff_make_format_list(all_pix_fmts), &ctx->inputs[0]->outcfg.formats);
181181 if (ret < 0)
182182 return ret;
183183
@@ -192,7 +192,7 @@ static int query_formats(AVFilterContext *ctx) · 8 unmodified lines
192192 return AVERROR(EINVAL);
193193 }
194194
195− return ff_formats_ref(ff_make_format_list(pix_fmts), &ctx->outputs[0]->in_formats);
195+ return ff_formats_ref(ff_make_format_list(pix_fmts), &ctx->outputs[0]->incfg.formats);
196196 }
197197
198198 static int config_inputx(AVFilterLink *inlink)
libavfilter/vf_mergeplanes.c+2−2
@@ -122,12 +122,12 @@ static int query_formats(AVFilterContext *ctx) · 121 unmodified lines
122122 }
123123
124124 for (i = 0; i < s->nb_inputs; i++)
125− if ((ret = ff_formats_ref(formats, &ctx->inputs[i]->out_formats)) < 0)
125+ if ((ret = ff_formats_ref(formats, &ctx->inputs[i]->outcfg.formats)) < 0)
126126 return ret;
127127
128128 formats = NULL;
129129 if ((ret = ff_add_format(&formats, s->out_fmt)) < 0 ||
130− (ret = ff_formats_ref(formats, &ctx->outputs[0]->in_formats)) < 0)
130+ (ret = ff_formats_ref(formats, &ctx->outputs[0]->incfg.formats)) < 0)
131131 return ret;
132132
133133 return 0;
libavfilter/vf_overlay.c+3−3
@@ -261,12 +261,12 @@ static int query_formats(AVFilterContext *ctx) · 260 unmodified lines
261261 }
262262
263263 formats = ff_make_format_list(main_formats);
264− if ((ret = ff_formats_ref(formats, &ctx->inputs[MAIN]->out_formats)) < 0 ||
265− (ret = ff_formats_ref(formats, &ctx->outputs[MAIN]->in_formats)) < 0)
264+ if ((ret = ff_formats_ref(formats, &ctx->inputs[MAIN]->outcfg.formats)) < 0 ||
265+ (ret = ff_formats_ref(formats, &ctx->outputs[MAIN]->incfg.formats)) < 0)
266266 return ret;
267267
268268 return ff_formats_ref(ff_make_format_list(overlay_formats),
269− &ctx->inputs[OVERLAY]->out_formats);
269+ &ctx->inputs[OVERLAY]->outcfg.formats);
270270 }
271271
272272 static int config_input_overlay(AVFilterLink *inlink)
libavfilter/vf_overlay_qsv.c+2−2
@@ -381,12 +381,12 @@ static int overlay_qsv_query_formats(AVFilterContext *ctx) · 380 unmodified lines
381381 };
382382
383383 for (i = 0; i < ctx->nb_inputs; i++) {
384− ret = ff_formats_ref(ff_make_format_list(main_in_fmts), &ctx->inputs[i]->out_formats);
384+ ret = ff_formats_ref(ff_make_format_list(main_in_fmts), &ctx->inputs[i]->outcfg.formats);
385385 if (ret < 0)
386386 return ret;
387387 }
388388
389− ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->in_formats);
389+ ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->incfg.formats);
390390 if (ret < 0)
391391 return ret;
392392
libavfilter/vf_palettegen.c+2−2
@@ -99,9 +99,9 @@ static int query_formats(AVFilterContext *ctx) · 98 unmodified lines
9999 static const enum AVPixelFormat out_fmts[] = {AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE};
100100 int ret;
101101
102− if ((ret = ff_formats_ref(ff_make_format_list(in_fmts) , &ctx->inputs[0]->out_formats)) < 0)
102+ if ((ret = ff_formats_ref(ff_make_format_list(in_fmts) , &ctx->inputs[0]->outcfg.formats)) < 0)
103103 return ret;
104− if ((ret = ff_formats_ref(ff_make_format_list(out_fmts), &ctx->outputs[0]->in_formats)) < 0)
104+ if ((ret = ff_formats_ref(ff_make_format_list(out_fmts), &ctx->outputs[0]->incfg.formats)) < 0)
105105 return ret;
106106 return 0;
107107 }
libavfilter/vf_paletteuse.c+3−3
@@ -143,11 +143,11 @@ static int query_formats(AVFilterContext *ctx) · 142 unmodified lines
143143 static const enum AVPixelFormat out_fmts[] = {AV_PIX_FMT_PAL8, AV_PIX_FMT_NONE};
144144 int ret;
145145 if ((ret = ff_formats_ref(ff_make_format_list(in_fmts),
146− &ctx->inputs[0]->out_formats)) < 0 ||
146+ &ctx->inputs[0]->outcfg.formats)) < 0 ||
147147 (ret = ff_formats_ref(ff_make_format_list(inpal_fmts),
148− &ctx->inputs[1]->out_formats)) < 0 ||
148+ &ctx->inputs[1]->outcfg.formats)) < 0 ||
149149 (ret = ff_formats_ref(ff_make_format_list(out_fmts),
150− &ctx->outputs[0]->in_formats)) < 0)
150+ &ctx->outputs[0]->incfg.formats)) < 0)
151151 return ret;
152152 return 0;
153153 }
libavfilter/vf_remap.c+4−4
@@ -116,14 +116,14 @@ static int query_formats(AVFilterContext *ctx) · 115 unmodified lines
116116 int ret;
117117
118118 pix_formats = ff_make_format_list(s->format ? gray_pix_fmts : pix_fmts);
119− if ((ret = ff_formats_ref(pix_formats, &ctx->inputs[0]->out_formats)) < 0 ||
120− (ret = ff_formats_ref(pix_formats, &ctx->outputs[0]->in_formats)) < 0)
119+ if ((ret = ff_formats_ref(pix_formats, &ctx->inputs[0]->outcfg.formats)) < 0 ||
120+ (ret = ff_formats_ref(pix_formats, &ctx->outputs[0]->incfg.formats)) < 0)
121121 return ret;
122122
123123 map_formats = ff_make_format_list(map_fmts);
124− if ((ret = ff_formats_ref(map_formats, &ctx->inputs[1]->out_formats)) < 0)
124+ if ((ret = ff_formats_ref(map_formats, &ctx->inputs[1]->outcfg.formats)) < 0)
125125 return ret;
126− return ff_formats_ref(map_formats, &ctx->inputs[2]->out_formats);
126+ return ff_formats_ref(map_formats, &ctx->inputs[2]->outcfg.formats);
127127 }
128128
129129 /**
libavfilter/vf_scale.c+2−2
@@ -358,7 +358,7 @@ static int query_formats(AVFilterContext *ctx) · 357 unmodified lines
358358 return ret;
359359 }
360360 }
361− if ((ret = ff_formats_ref(formats, &ctx->inputs[0]->out_formats)) < 0)
361+ if ((ret = ff_formats_ref(formats, &ctx->inputs[0]->outcfg.formats)) < 0)
362362 return ret;
363363 }
364364 if (ctx->outputs[0]) {
@@ -372,7 +372,7 @@ static int query_formats(AVFilterContext *ctx) · 7 unmodified lines
372372 return ret;
373373 }
374374 }
375− if ((ret = ff_formats_ref(formats, &ctx->outputs[0]->in_formats)) < 0)
375+ if ((ret = ff_formats_ref(formats, &ctx->outputs[0]->incfg.formats)) < 0)
376376 return ret;
377377 }
378378
libavfilter/vf_showpalette.c+2−2
@@ -47,12 +47,12 @@ static int query_formats(AVFilterContext *ctx) · 46 unmodified lines
4747 static const enum AVPixelFormat in_fmts[] = {AV_PIX_FMT_PAL8, AV_PIX_FMT_NONE};
4848 static const enum AVPixelFormat out_fmts[] = {AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE};
4949 int ret = ff_formats_ref(ff_make_format_list(in_fmts),
50− &ctx->inputs[0]->out_formats);
50+ &ctx->inputs[0]->outcfg.formats);
5151 if (ret < 0)
5252 return ret;
5353
5454 return ff_formats_ref(ff_make_format_list(out_fmts),
55− &ctx->outputs[0]->in_formats);
55+ &ctx->outputs[0]->incfg.formats);
5656 }
5757
5858 static int config_output(AVFilterLink *outlink)
libavfilter/vf_vectorscope.c+6−6
@@ -216,23 +216,23 @@ static int query_formats(AVFilterContext *ctx) · 215 unmodified lines
216216 AVFilterFormats *avff;
217217 int depth, rgb, i, ret;
218218
219− if (!ctx->inputs[0]->in_formats ||
220− !ctx->inputs[0]->in_formats->nb_formats) {
219+ if (!ctx->inputs[0]->incfg.formats ||
220+ !ctx->inputs[0]->incfg.formats->nb_formats) {
221221 return AVERROR(EAGAIN);
222222 }
223223
224− if (!ctx->inputs[0]->out_formats) {
224+ if (!ctx->inputs[0]->outcfg.formats) {
225225 const enum AVPixelFormat *in_pix_fmts;
226226
227227 if ((s->x == 1 && s->y == 2) || (s->x == 2 && s->y == 1))
228228 in_pix_fmts = in2_pix_fmts;
229229 else
230230 in_pix_fmts = in1_pix_fmts;
231− if ((ret = ff_formats_ref(ff_make_format_list(in_pix_fmts), &ctx->inputs[0]->out_formats)) < 0)
231+ if ((ret = ff_formats_ref(ff_make_format_list(in_pix_fmts), &ctx->inputs[0]->outcfg.formats)) < 0)
232232 return ret;
233233 }
234234
235− avff = ctx->inputs[0]->in_formats;
235+ avff = ctx->inputs[0]->incfg.formats;
236236 desc = av_pix_fmt_desc_get(avff->formats[0]);
237237 rgb = desc->flags & AV_PIX_FMT_FLAG_RGB;
238238 depth = desc->comp[0].depth;
@@ -261,7 +261,7 @@ static int query_formats(AVFilterContext *ctx) · 22 unmodified lines
261261 out_pix_fmts = out_yuv12_pix_fmts;
262262 else
263263 return AVERROR(EAGAIN);
264− if ((ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->in_formats)) < 0)
264+ if ((ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->incfg.formats)) < 0)
265265 return ret;
266266
267267 return 0;
libavfilter/vf_vpp_qsv.c+2−2
@@ -505,11 +505,11 @@ static int query_formats(AVFilterContext *ctx) · 504 unmodified lines
505505 };
506506
507507 ret = ff_formats_ref(ff_make_format_list(in_pix_fmts),
508− &ctx->inputs[0]->out_formats);
508+ &ctx->inputs[0]->outcfg.formats);
509509 if (ret < 0)
510510 return ret;
511511 return ff_formats_ref(ff_make_format_list(out_pix_fmts),
512− &ctx->outputs[0]->in_formats);
512+ &ctx->outputs[0]->incfg.formats);
513513 }
514514
515515 static av_cold void vpp_uninit(AVFilterContext *ctx)
libavfilter/vf_waveform.c+7−7
@@ -319,8 +319,8 @@ static int query_formats(AVFilterContext *ctx) · 318 unmodified lines
319319 AVFilterFormats *avff, *avff2;
320320 int depth, depth2, rgb, i, ret, ncomp, ncomp2;
321321
322− if (!ctx->inputs[0]->in_formats ||
323− !ctx->inputs[0]->in_formats->nb_formats) {
322+ if (!ctx->inputs[0]->incfg.formats ||
323+ !ctx->inputs[0]->incfg.formats->nb_formats) {
324324 return AVERROR(EAGAIN);
325325 }
326326
@@ -336,13 +336,13 @@ static int query_formats(AVFilterContext *ctx) · 9 unmodified lines
336336 default: return AVERROR_BUG;
337337 }
338338
339− if (!ctx->inputs[0]->out_formats) {
340− if ((ret = ff_formats_ref(ff_make_format_list(in_pix_fmts), &ctx->inputs[0]->out_formats)) < 0)
339+ if (!ctx->inputs[0]->outcfg.formats) {
340+ if ((ret = ff_formats_ref(ff_make_format_list(in_pix_fmts), &ctx->inputs[0]->outcfg.formats)) < 0)
341341 return ret;
342342 }
343343
344− avff = ctx->inputs[0]->in_formats;
345− avff2 = ctx->inputs[0]->out_formats;
344+ avff = ctx->inputs[0]->incfg.formats;
345+ avff2 = ctx->inputs[0]->outcfg.formats;
346346 desc = av_pix_fmt_desc_get(avff->formats[0]);
347347 desc2 = av_pix_fmt_desc_get(avff2->formats[0]);
348348 ncomp = desc->nb_components;
@@ -385,7 +385,7 @@ static int query_formats(AVFilterContext *ctx) · 36 unmodified lines
385385 out_pix_fmts = out_yuv12_lowpass_pix_fmts;
386386 else
387387 return AVERROR(EAGAIN);
388− if ((ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->in_formats)) < 0)
388+ if ((ret = ff_formats_ref(ff_make_format_list(out_pix_fmts), &ctx->outputs[0]->incfg.formats)) < 0)
389389 return ret;
390390
391391 return 0;
libavfilter/vf_yadif_cuda.c+2−2
@@ -216,10 +216,10 @@ static int deint_cuda_query_formats(AVFilterContext *ctx) · 215 unmodified lines
216216 int ret;
217217
218218 if ((ret = ff_formats_ref(ff_make_format_list(pix_fmts),
219− &ctx->inputs[0]->out_formats)) < 0)
219+ &ctx->inputs[0]->outcfg.formats)) < 0)
220220 return ret;
221221 if ((ret = ff_formats_ref(ff_make_format_list(pix_fmts),
222− &ctx->outputs[0]->in_formats)) < 0)
222+ &ctx->outputs[0]->incfg.formats)) < 0)
223223 return ret;
224224
225225 return 0;
libavfilter/vf_zscale.c+2−2
@@ -187,10 +187,10 @@ static int query_formats(AVFilterContext *ctx) · 186 unmodified lines
187187 };
188188 int ret;
189189
190− ret = ff_formats_ref(ff_make_format_list(pixel_fmts), &ctx->inputs[0]->out_formats);
190+ ret = ff_formats_ref(ff_make_format_list(pixel_fmts), &ctx->inputs[0]->outcfg.formats);
191191 if (ret < 0)
192192 return ret;
193− return ff_formats_ref(ff_make_format_list(pixel_fmts), &ctx->outputs[0]->in_formats);
193+ return ff_formats_ref(ff_make_format_list(pixel_fmts), &ctx->outputs[0]->incfg.formats);
194194 }
195195
196196 static int config_props(AVFilterLink *outlink)

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