summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClément Bœsch <ubitux@gmail.com>2012-11-28 20:01:59 +0100
committerClément Bœsch <ubitux@gmail.com>2012-11-28 23:19:20 +0100
commit2d9d4440519f22c092ac37ccd1a1a914564d00b5 (patch)
tree8bad56e7faafe0c7d28f9211855f6e4d169c88d9
parentbff576c779476c5325edb2e90828051138416759 (diff)
downloadffmpeg-streaming-2d9d4440519f22c092ac37ccd1a1a914564d00b5.zip
ffmpeg-streaming-2d9d4440519f22c092ac37ccd1a1a914564d00b5.tar.gz
lavfi: convert remaining input/output list compound literals to named objects.
This is following 568c70e79ee267426c15ef4603c69703f6a5884a.
-rw-r--r--libavfilter/af_aconvert.c31
-rw-r--r--libavfilter/af_amerge.c23
-rw-r--r--libavfilter/af_aresample.c33
-rw-r--r--libavfilter/af_asetnsamples.c44
-rw-r--r--libavfilter/af_astreamsync.c55
-rw-r--r--libavfilter/af_atempo.c38
-rw-r--r--libavfilter/af_earwax.c31
-rw-r--r--libavfilter/af_pan.c35
-rw-r--r--libavfilter/af_silencedetect.c35
-rw-r--r--libavfilter/af_volume.c30
-rw-r--r--libavfilter/af_volumedetect.c35
-rw-r--r--libavfilter/asrc_aevalsrc.c22
-rw-r--r--libavfilter/asrc_flite.c27
-rw-r--r--libavfilter/avf_concat.c4
-rw-r--r--libavfilter/avf_showspectrum.c45
-rw-r--r--libavfilter/avf_showwaves.c45
-rw-r--r--libavfilter/f_ebur128.c21
-rw-r--r--libavfilter/f_sendcmd.c76
-rw-r--r--libavfilter/f_setpts.c40
-rw-r--r--libavfilter/f_settb.c35
-rw-r--r--libavfilter/sink_buffer.c72
-rw-r--r--libavfilter/src_movie.c6
-rw-r--r--libavfilter/vf_alphaextract.c35
-rw-r--r--libavfilter/vf_alphamerge.c58
-rw-r--r--libavfilter/vf_ass.c43
-rw-r--r--libavfilter/vf_bbox.c38
-rw-r--r--libavfilter/vf_blackdetect.c44
-rw-r--r--libavfilter/vf_colormatrix.c38
-rw-r--r--libavfilter/vf_decimate.c47
-rw-r--r--libavfilter/vf_deshake.c34
-rw-r--r--libavfilter/vf_edgedetect.c39
-rw-r--r--libavfilter/vf_framestep.c45
-rw-r--r--libavfilter/vf_hue.c43
-rw-r--r--libavfilter/vf_idet.c40
-rw-r--r--libavfilter/vf_mp.c39
-rw-r--r--libavfilter/vf_removelogo.c41
-rw-r--r--libavfilter/vf_setfield.c33
-rw-r--r--libavfilter/vf_smartblur.c39
-rw-r--r--libavfilter/vf_super2xsai.c39
-rw-r--r--libavfilter/vf_swapuv.c33
-rw-r--r--libavfilter/vf_thumbnail.c42
-rw-r--r--libavfilter/vf_tile.c41
-rw-r--r--libavfilter/vf_tinterlace.c39
-rw-r--r--libavfilter/vsrc_cellauto.c25
-rw-r--r--libavfilter/vsrc_life.c25
-rw-r--r--libavfilter/vsrc_mandelbrot.c20
-rw-r--r--libavfilter/vsrc_mptestsrc.c19
-rw-r--r--libavfilter/vsrc_testsrc.c77
48 files changed, 1038 insertions, 761 deletions
diff --git a/libavfilter/af_aconvert.c b/libavfilter/af_aconvert.c
index 22de54b..54f1fcd 100644
--- a/libavfilter/af_aconvert.c
+++ b/libavfilter/af_aconvert.c
@@ -154,6 +154,25 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamplesref)
return ret;
}
+static const AVFilterPad aconvert_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad aconvert_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .config_props = config_output,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_aconvert = {
.name = "aconvert",
.description = NULL_IF_CONFIG_SMALL("Convert the input audio to sample_fmt:channel_layout."),
@@ -161,14 +180,6 @@ AVFilter avfilter_af_aconvert = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ, },
- { .name = NULL}},
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .config_props = config_output, },
- { .name = NULL}},
+ .inputs = aconvert_inputs,
+ .outputs = aconvert_outputs,
};
diff --git a/libavfilter/af_amerge.c b/libavfilter/af_amerge.c
index 61770b4..44b71e4 100644
--- a/libavfilter/af_amerge.c
+++ b/libavfilter/af_amerge.c
@@ -323,6 +323,16 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
return 0;
}
+static const AVFilterPad amerge_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .config_props = config_output,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_amerge = {
.name = "amerge",
.description = NULL_IF_CONFIG_SMALL("Merge two audio streams into "
@@ -331,14 +341,7 @@ AVFilter avfilter_af_amerge = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) { { .name = NULL } },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .config_props = config_output,
- .request_frame = request_frame, },
- { .name = NULL }
- },
- .priv_class = &amerge_class,
+ .inputs = NULL,
+ .outputs = amerge_outputs,
+ .priv_class = &amerge_class,
};
diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
index d3bab45..2dcfd69 100644
--- a/libavfilter/af_aresample.c
+++ b/libavfilter/af_aresample.c
@@ -253,6 +253,26 @@ static int request_frame(AVFilterLink *outlink)
return ret;
}
+static const AVFilterPad aresample_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL },
+};
+
+static const AVFilterPad aresample_outputs[] = {
+ {
+ .name = "default",
+ .config_props = config_output,
+ .request_frame = request_frame,
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL },
+};
+
AVFilter avfilter_af_aresample = {
.name = "aresample",
.description = NULL_IF_CONFIG_SMALL("Resample audio data."),
@@ -260,15 +280,6 @@ AVFilter avfilter_af_aresample = {
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(AResampleContext),
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ, },
- { .name = NULL}},
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .config_props = config_output,
- .request_frame = request_frame,
- .type = AVMEDIA_TYPE_AUDIO, },
- { .name = NULL}},
+ .inputs = aresample_inputs,
+ .outputs = aresample_outputs,
};
diff --git a/libavfilter/af_asetnsamples.c b/libavfilter/af_asetnsamples.c
index d7bf038..ee80c1c 100644
--- a/libavfilter/af_asetnsamples.c
+++ b/libavfilter/af_asetnsamples.c
@@ -175,31 +175,33 @@ static int request_frame(AVFilterLink *outlink)
return ret;
}
+static const AVFilterPad asetnsamples_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_WRITE,
+ },
+ { NULL }
+};
+
+static const AVFilterPad asetnsamples_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .request_frame = request_frame,
+ .config_props = config_props_output,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_asetnsamples = {
.name = "asetnsamples",
.description = NULL_IF_CONFIG_SMALL("Set the number of samples for each output audio frames."),
.priv_size = sizeof(ASNSContext),
.init = init,
.uninit = uninit,
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ|AV_PERM_WRITE
- },
- { .name = NULL }
- },
-
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .request_frame = request_frame,
- .config_props = config_props_output,
- },
- { .name = NULL }
- },
- .priv_class = &asetnsamples_class,
+ .inputs = asetnsamples_inputs,
+ .outputs = asetnsamples_outputs,
+ .priv_class = &asetnsamples_class,
};
diff --git a/libavfilter/af_astreamsync.c b/libavfilter/af_astreamsync.c
index 44f6aab..269ffc1 100644
--- a/libavfilter/af_astreamsync.c
+++ b/libavfilter/af_astreamsync.c
@@ -180,6 +180,36 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return 0;
}
+static const AVFilterPad astreamsync_inputs[] = {
+ {
+ .name = "in1",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
+ },{
+ .name = "in2",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
+ },
+ { NULL }
+};
+
+static const AVFilterPad astreamsync_outputs[] = {
+ {
+ .name = "out1",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .config_props = config_output,
+ .request_frame = request_frame,
+ },{
+ .name = "out2",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .config_props = config_output,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_astreamsync = {
.name = "astreamsync",
.description = NULL_IF_CONFIG_SMALL("Copy two streams of audio data "
@@ -187,27 +217,6 @@ AVFilter avfilter_af_astreamsync = {
.priv_size = sizeof(AStreamSyncContext),
.init = init,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "in1",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE, },
- { .name = "in2",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE, },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "out1",
- .type = AVMEDIA_TYPE_AUDIO,
- .config_props = config_output,
- .request_frame = request_frame, },
- { .name = "out2",
- .type = AVMEDIA_TYPE_AUDIO,
- .config_props = config_output,
- .request_frame = request_frame, },
- { .name = NULL }
- },
+ .inputs = astreamsync_inputs,
+ .outputs = astreamsync_outputs,
};
diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c
index 77e5ff6..74bf9cc 100644
--- a/libavfilter/af_atempo.c
+++ b/libavfilter/af_atempo.c
@@ -1136,6 +1136,26 @@ static int process_command(AVFilterContext *ctx,
return !strcmp(cmd, "tempo") ? yae_set_tempo(ctx, arg) : AVERROR(ENOSYS);
}
+static const AVFilterPad atempo_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .config_props = config_props,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad atempo_outputs[] = {
+ {
+ .name = "default",
+ .request_frame = request_frame,
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_atempo = {
.name = "atempo",
.description = NULL_IF_CONFIG_SMALL("Adjust audio tempo."),
@@ -1144,20 +1164,6 @@ AVFilter avfilter_af_atempo = {
.query_formats = query_formats,
.process_command = process_command,
.priv_size = sizeof(ATempoContext),
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .config_props = config_props,
- .min_perms = AV_PERM_READ, },
- { .name = NULL}
- },
-
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .request_frame = request_frame,
- .type = AVMEDIA_TYPE_AUDIO, },
- { .name = NULL}
- },
+ .inputs = atempo_inputs,
+ .outputs = atempo_outputs,
};
diff --git a/libavfilter/af_earwax.c b/libavfilter/af_earwax.c
index 56a6ae1..4a2b8b7 100644
--- a/libavfilter/af_earwax.c
+++ b/libavfilter/af_earwax.c
@@ -153,19 +153,30 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return ret;
}
+static const AVFilterPad earwax_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .config_props = config_input,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad earwax_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_earwax = {
.name = "earwax",
.description = NULL_IF_CONFIG_SMALL("Widen the stereo image."),
.query_formats = query_formats,
.priv_size = sizeof(EarwaxContext),
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .config_props = config_input,
- .min_perms = AV_PERM_READ, },
- { .name = NULL}},
-
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO, },
- { .name = NULL}},
+ .inputs = earwax_inputs,
+ .outputs = earwax_outputs,
};
diff --git a/libavfilter/af_pan.c b/libavfilter/af_pan.c
index 3531058..922025a 100644
--- a/libavfilter/af_pan.c
+++ b/libavfilter/af_pan.c
@@ -376,6 +376,25 @@ static av_cold void uninit(AVFilterContext *ctx)
swr_free(&pan->swr);
}
+static const AVFilterPad pan_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .config_props = config_props,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad pan_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_pan = {
.name = "pan",
.description = NULL_IF_CONFIG_SMALL("Remix channels with coefficients (panning)."),
@@ -383,18 +402,6 @@ AVFilter avfilter_af_pan = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .config_props = config_props,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ, },
- { .name = NULL}
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO, },
- { .name = NULL}
- },
+ .inputs = pan_inputs,
+ .outputs = pan_outputs,
};
diff --git a/libavfilter/af_silencedetect.c b/libavfilter/af_silencedetect.c
index 7ae9026..f5fccc5 100644
--- a/libavfilter/af_silencedetect.c
+++ b/libavfilter/af_silencedetect.c
@@ -162,24 +162,31 @@ static int query_formats(AVFilterContext *ctx)
return 0;
}
+static const AVFilterPad silencedetect_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .get_audio_buffer = ff_null_get_audio_buffer,
+ .filter_frame = filter_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad silencedetect_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_silencedetect = {
.name = "silencedetect",
.description = NULL_IF_CONFIG_SMALL("Detect silence."),
.priv_size = sizeof(SilenceDetectContext),
.init = init,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .get_audio_buffer = ff_null_get_audio_buffer,
- .filter_frame = filter_frame, },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO, },
- { .name = NULL }
- },
- .priv_class = &silencedetect_class,
+ .inputs = silencedetect_inputs,
+ .outputs = silencedetect_outputs,
+ .priv_class = &silencedetect_class,
};
diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c
index 7c45029..7608083 100644
--- a/libavfilter/af_volume.c
+++ b/libavfilter/af_volume.c
@@ -172,20 +172,30 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return ff_filter_frame(outlink, insamples);
}
+static const AVFilterPad volume_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_WRITE,
+ },
+ { NULL },
+};
+
+static const AVFilterPad volume_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL },
+};
+
AVFilter avfilter_af_volume = {
.name = "volume",
.description = NULL_IF_CONFIG_SMALL("Change input volume."),
.query_formats = query_formats,
.priv_size = sizeof(VolumeContext),
.init = init,
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ|AV_PERM_WRITE},
- { .name = NULL}},
-
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO, },
- { .name = NULL}},
+ .inputs = volume_inputs,
+ .outputs = volume_outputs,
};
diff --git a/libavfilter/af_volumedetect.c b/libavfilter/af_volumedetect.c
index 5353e50..01f30a6 100644
--- a/libavfilter/af_volumedetect.c
+++ b/libavfilter/af_volumedetect.c
@@ -131,6 +131,25 @@ static void uninit(AVFilterContext *ctx)
print_stats(ctx);
}
+static const AVFilterPad volumedetect_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .get_audio_buffer = ff_null_get_audio_buffer,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad volumedetect_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_volumedetect = {
.name = "volumedetect",
.description = NULL_IF_CONFIG_SMALL("Detect audio volume."),
@@ -138,18 +157,6 @@ AVFilter avfilter_af_volumedetect = {
.priv_size = sizeof(VolDetectContext),
.query_formats = query_formats,
.uninit = uninit,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .get_audio_buffer = ff_null_get_audio_buffer,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ, },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO, },
- { .name = NULL }
- },
+ .inputs = volumedetect_inputs,
+ .outputs = volumedetect_outputs,
};
diff --git a/libavfilter/asrc_aevalsrc.c b/libavfilter/asrc_aevalsrc.c
index a834bc2..eaf7975 100644
--- a/libavfilter/asrc_aevalsrc.c
+++ b/libavfilter/asrc_aevalsrc.c
@@ -242,6 +242,16 @@ static int request_frame(AVFilterLink *outlink)
return 0;
}
+static const AVFilterPad aevalsrc_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .config_props = config_props,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_asrc_aevalsrc = {
.name = "aevalsrc",
.description = NULL_IF_CONFIG_SMALL("Generate an audio signal generated by an expression."),
@@ -250,13 +260,7 @@ AVFilter avfilter_asrc_aevalsrc = {
.init = init,
.uninit = uninit,
.priv_size = sizeof(EvalContext),
-
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
-
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .config_props = config_props,
- .request_frame = request_frame, },
- { .name = NULL}},
- .priv_class = &aevalsrc_class,
+ .inputs = NULL,
+ .outputs = aevalsrc_outputs,
+ .priv_class = &aevalsrc_class,
};
diff --git a/libavfilter/asrc_flite.c b/libavfilter/asrc_flite.c
index 0718699..04901da 100644
--- a/libavfilter/asrc_flite.c
+++ b/libavfilter/asrc_flite.c
@@ -268,6 +268,16 @@ static int request_frame(AVFilterLink *outlink)
return ff_filter_frame(outlink, samplesref);
}
+static const AVFilterPad flite_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .config_props = config_props,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_asrc_flite = {
.name = "flite",
.description = NULL_IF_CONFIG_SMALL("Synthesize voice from text using libflite."),
@@ -275,18 +285,7 @@ AVFilter avfilter_asrc_flite = {
.init = init,
.uninit = uninit,
.priv_size = sizeof(FliteContext),
-
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
-
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .config_props = config_props,
- .request_frame = request_frame,
- },
- { .name = NULL }
- },
-
- .priv_class = &flite_class,
+ .inputs = NULL,
+ .outputs = flite_outputs,
+ .priv_class = &flite_class,
};
diff --git a/libavfilter/avf_concat.c b/libavfilter/avf_concat.c
index 22171c4..de4c47c 100644
--- a/libavfilter/avf_concat.c
+++ b/libavfilter/avf_concat.c
@@ -445,7 +445,7 @@ AVFilter avfilter_avf_concat = {
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(ConcatContext),
- .inputs = (const AVFilterPad[]) { { .name = NULL } },
- .outputs = (const AVFilterPad[]) { { .name = NULL } },
+ .inputs = NULL,
+ .outputs = NULL,
.priv_class = &concat_class,
};
diff --git a/libavfilter/avf_showspectrum.c b/libavfilter/avf_showspectrum.c
index a1e19cb..5a0aea2 100644
--- a/libavfilter/avf_showspectrum.c
+++ b/libavfilter/avf_showspectrum.c
@@ -298,6 +298,26 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return 0;
}
+static const AVFilterPad showspectrum_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad showspectrum_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_output,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_avf_showspectrum = {
.name = "showspectrum",
.description = NULL_IF_CONFIG_SMALL("Convert input audio to a spectrum video output."),
@@ -305,26 +325,7 @@ AVFilter avfilter_avf_showspectrum = {
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(ShowSpectrumContext),
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ,
- },
- { .name = NULL }
- },
-
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_output,
- .request_frame = request_frame,
- },
- { .name = NULL }
- },
-
- .priv_class = &showspectrum_class,
+ .inputs = showspectrum_inputs,
+ .outputs = showspectrum_outputs,
+ .priv_class = &showspectrum_class,
};
diff --git a/libavfilter/avf_showwaves.c b/libavfilter/avf_showwaves.c
index dcae98c..765e998 100644
--- a/libavfilter/avf_showwaves.c
+++ b/libavfilter/avf_showwaves.c
@@ -228,6 +228,26 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
return 0;
}
+static const AVFilterPad showwaves_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad showwaves_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_output,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_avf_showwaves = {
.name = "showwaves",
.description = NULL_IF_CONFIG_SMALL("Convert input audio to a video output."),
@@ -235,26 +255,7 @@ AVFilter avfilter_avf_showwaves = {
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(ShowWavesContext),
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ,
- },
- { .name = NULL }
- },
-
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_output,
- .request_frame = request_frame,
- },
- { .name = NULL }
- },
-
- .priv_class = &showwaves_class,
+ .inputs = showwaves_inputs,
+ .outputs = showwaves_outputs,
+ .priv_class = &showwaves_class,
};
diff --git a/libavfilter/f_ebur128.c b/libavfilter/f_ebur128.c
index f450ddc..2da7445 100644
--- a/libavfilter/f_ebur128.c
+++ b/libavfilter/f_ebur128.c
@@ -728,6 +728,16 @@ static av_cold void uninit(AVFilterContext *ctx)
avfilter_unref_bufferp(&ebur128->outpicref);
}
+static const AVFilterPad ebur128_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .get_audio_buffer = ff_null_get_audio_buffer,
+ .filter_frame = filter_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_ebur128 = {
.name = "ebur128",
.description = NULL_IF_CONFIG_SMALL("EBU R128 scanner."),
@@ -735,13 +745,6 @@ AVFilter avfilter_af_ebur128 = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .get_audio_buffer = ff_null_get_audio_buffer,
- .filter_frame = filter_frame, },
- { .name = NULL }
- },
- .outputs = NULL,
+ .inputs = ebur128_inputs,
+ .outputs = NULL,
};
diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c
index b28eea2..a0925d0 100644
--- a/libavfilter/f_sendcmd.c
+++ b/libavfilter/f_sendcmd.c
@@ -518,6 +518,25 @@ end:
#if CONFIG_SENDCMD_FILTER
+static const AVFilterPad sendcmd_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = process_frame,
+ .end_frame = ff_null_end_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad sendcmd_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_sendcmd = {
.name = "sendcmd",
.description = NULL_IF_CONFIG_SMALL("Send commands to filters."),
@@ -525,30 +544,32 @@ AVFilter avfilter_vf_sendcmd = {
.init = init,
.uninit = uninit,
.priv_size = sizeof(SendCmdContext),
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = ff_null_get_video_buffer,
- .start_frame = process_frame,
- .end_frame = ff_null_end_frame,
- },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- },
- { .name = NULL }
- },
+ .inputs = sendcmd_inputs,
+ .outputs = sendcmd_outputs,
};
#endif
#if CONFIG_ASENDCMD_FILTER
+static const AVFilterPad asendcmd_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .get_audio_buffer = ff_null_get_audio_buffer,
+ .filter_frame = process_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad asendcmd_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_asendcmd = {
.name = "asendcmd",
.description = NULL_IF_CONFIG_SMALL("Send commands to filters."),
@@ -556,23 +577,8 @@ AVFilter avfilter_af_asendcmd = {
.init = init,
.uninit = uninit,
.priv_size = sizeof(SendCmdContext),
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .get_audio_buffer = ff_null_get_audio_buffer,
- .filter_frame = process_frame,
- },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- },
- { .name = NULL }
- },
+ .inputs = asendcmd_inputs,
+ .outputs = asendcmd_outputs,
};
#endif
diff --git a/libavfilter/f_setpts.c b/libavfilter/f_setpts.c
index 4746587..e5636e2 100644
--- a/libavfilter/f_setpts.c
+++ b/libavfilter/f_setpts.c
@@ -183,31 +183,33 @@ static av_cold void uninit(AVFilterContext *ctx)
}
#if CONFIG_ASETPTS_FILTER
+static const AVFilterPad avfilter_af_asetpts_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .get_audio_buffer = ff_null_get_audio_buffer,
+ .config_props = config_input,
+ .filter_frame = filter_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad avfilter_af_asetpts_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_asetpts = {
.name = "asetpts",
.description = NULL_IF_CONFIG_SMALL("Set PTS for the output audio frame."),
.init = init,
.uninit = uninit,
-
.priv_size = sizeof(SetPTSContext),
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .get_audio_buffer = ff_null_get_audio_buffer,
- .config_props = config_input,
- .filter_frame = filter_frame,
- },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- },
- { .name = NULL }
- },
+ .inputs = avfilter_af_asetpts_inputs,
+ .outputs = avfilter_af_asetpts_outputs,
};
#endif /* CONFIG_ASETPTS_FILTER */
diff --git a/libavfilter/f_settb.c b/libavfilter/f_settb.c
index 5b9434e..99ea7a7 100644
--- a/libavfilter/f_settb.c
+++ b/libavfilter/f_settb.c
@@ -152,25 +152,32 @@ AVFilter avfilter_vf_settb = {
#endif
#if CONFIG_ASETTB_FILTER
+static const AVFilterPad avfilter_af_asettb_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .get_audio_buffer = ff_null_get_audio_buffer,
+ .filter_frame = filter_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad avfilter_af_asettb_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .config_props = config_output_props,
+ },
+ { NULL }
+};
+
AVFilter avfilter_af_asettb = {
.name = "asettb",
.description = NULL_IF_CONFIG_SMALL("Set timebase for the audio output link."),
.init = init,
.priv_size = sizeof(SetTBContext),
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .get_audio_buffer = ff_null_get_audio_buffer,
- .filter_frame = filter_frame, },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .config_props = config_output_props, },
- { .name = NULL}
- },
+ .inputs = avfilter_af_asettb_inputs,
+ .outputs = avfilter_af_asettb_outputs,
};
#endif
diff --git a/libavfilter/sink_buffer.c b/libavfilter/sink_buffer.c
index f0878f0..88fefba 100644
--- a/libavfilter/sink_buffer.c
+++ b/libavfilter/sink_buffer.c
@@ -234,6 +234,16 @@ static int vsink_query_formats(AVFilterContext *ctx)
return 0;
}
+static const AVFilterPad ffbuffersink_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
+ },
+ { NULL },
+};
+
AVFilter avfilter_vsink_ffbuffersink = {
.name = "ffbuffersink",
.description = NULL_IF_CONFIG_SMALL("Buffer video frames, and make them available to the end of the filter graph."),
@@ -242,13 +252,18 @@ AVFilter avfilter_vsink_ffbuffersink = {
.uninit = vsink_uninit,
.query_formats = vsink_query_formats,
+ .inputs = ffbuffersink_inputs,
+ .outputs = NULL,
+};
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .end_frame = end_frame,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE, },
- { .name = NULL }},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+static const AVFilterPad buffersink_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
+ },
+ { NULL },
};
AVFilter avfilter_vsink_buffersink = {
@@ -259,13 +274,8 @@ AVFilter avfilter_vsink_buffersink = {
.uninit = vsink_uninit,
.query_formats = vsink_query_formats,
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .end_frame = end_frame,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE, },
- { .name = NULL }},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .inputs = buffersink_inputs,
+ .outputs = NULL,
};
static int filter_frame(AVFilterLink *link, AVFilterBufferRef *samplesref)
@@ -328,6 +338,16 @@ static int asink_query_formats(AVFilterContext *ctx)
return 0;
}
+static const AVFilterPad ffabuffersink_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
+ },
+ { NULL },
+};
+
AVFilter avfilter_asink_ffabuffersink = {
.name = "ffabuffersink",
.description = NULL_IF_CONFIG_SMALL("Buffer audio frames, and make them available to the end of the filter graph."),
@@ -335,13 +355,18 @@ AVFilter avfilter_asink_ffabuffersink = {
.uninit = asink_uninit,
.priv_size = sizeof(BufferSinkContext),
.query_formats = asink_query_formats,
+ .inputs = ffabuffersink_inputs,
+ .outputs = NULL,
+};
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE, },
- { .name = NULL }},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+static const AVFilterPad abuffersink_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
+ },
+ { NULL },
};
AVFilter avfilter_asink_abuffersink = {
@@ -351,13 +376,8 @@ AVFilter avfilter_asink_abuffersink = {
.uninit = asink_uninit,
.priv_size = sizeof(BufferSinkContext),
.query_formats = asink_query_formats,
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE, },
- { .name = NULL }},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .inputs = abuffersink_inputs,
+ .outputs = NULL,
};
/* Libav compatibility API */
diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c
index 4a15210..bd45766 100644
--- a/libavfilter/src_movie.c
+++ b/libavfilter/src_movie.c
@@ -612,7 +612,7 @@ AVFilter avfilter_avsrc_movie = {
.query_formats = movie_query_formats,
.inputs = NULL,
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .outputs = NULL,
.priv_class = &movie_class,
};
@@ -636,8 +636,8 @@ AVFilter avfilter_avsrc_amovie = {
.uninit = movie_uninit,
.query_formats = movie_query_formats,
- .inputs = (const AVFilterPad[]) {{ .name = NULL }},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .inputs = NULL,
+ .outputs = NULL,
.priv_class = &amovie_class,
};
diff --git a/libavfilter/vf_alphaextract.c b/libavfilter/vf_alphaextract.c
index 102af9d..35402f6 100644
--- a/libavfilter/vf_alphaextract.c
+++ b/libavfilter/vf_alphaextract.c
@@ -94,24 +94,31 @@ static int draw_slice(AVFilterLink *inlink, int y0, int h, int slice_dir)
return ff_draw_slice(inlink->dst->outputs[0], y0, h, slice_dir);
}
+static const AVFilterPad alphaextract_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_input,
+ .draw_slice = draw_slice,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad alphaextract_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_alphaextract = {
.name = "alphaextract",
.description = NULL_IF_CONFIG_SMALL("Extract an alpha channel as a "
"grayscale image component."),
.priv_size = sizeof(AlphaExtractContext),
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_input,
- .draw_slice = draw_slice,
- .min_perms = AV_PERM_READ },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO, },
- { .name = NULL }
- },
+ .inputs = alphaextract_inputs,
+ .outputs = alphaextract_outputs,
};
diff --git a/libavfilter/vf_alphamerge.c b/libavfilter/vf_alphamerge.c
index 51868de..1ec9d00 100644
--- a/libavfilter/vf_alphamerge.c
+++ b/libavfilter/vf_alphamerge.c
@@ -176,6 +176,37 @@ static int request_frame(AVFilterLink *outlink)
return 0;
}
+static const AVFilterPad alphamerge_inputs[] = {
+ {
+ .name = "main",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_input_main,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = start_frame,
+ .draw_slice = draw_slice,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_WRITE | AV_PERM_PRESERVE,
+ },{
+ .name = "alpha",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .start_frame = start_frame,
+ .draw_slice = draw_slice,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
+ },
+ { NULL }
+};
+
+static const AVFilterPad alphamerge_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_output,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_alphamerge = {
.name = "alphamerge",
.description = NULL_IF_CONFIG_SMALL("Copy the luma value of the second "
@@ -183,29 +214,6 @@ AVFilter avfilter_vf_alphamerge = {
.uninit = uninit,
.priv_size = sizeof(AlphaMergeContext),
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "main",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_input_main,
- .get_video_buffer = ff_null_get_video_buffer,
- .start_frame = start_frame,
- .draw_slice = draw_slice,
- .end_frame = end_frame,
- .min_perms = AV_PERM_READ | AV_PERM_WRITE | AV_PERM_PRESERVE },
- { .name = "alpha",
- .type = AVMEDIA_TYPE_VIDEO,
- .start_frame = start_frame,
- .draw_slice = draw_slice,
- .end_frame = end_frame,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_output,
- .request_frame = request_frame },
- { .name = NULL }
- },
+ .inputs = alphamerge_inputs,
+ .outputs = alphamerge_outputs,
};
diff --git a/libavfilter/vf_ass.c b/libavfilter/vf_ass.c
index dab4f68..a259735 100644
--- a/libavfilter/vf_ass.c
+++ b/libavfilter/vf_ass.c
@@ -200,6 +200,28 @@ static int end_frame(AVFilterLink *inlink)
return ff_end_frame(outlink);
}
+static const AVFilterPad ass_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
+ .draw_slice = null_draw_slice,
+ .end_frame = end_frame,
+ .config_props = config_input,
+ .min_perms = AV_PERM_WRITE | AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad ass_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_ass = {
.name = "ass",
.description = NULL_IF_CONFIG_SMALL("Render subtitles onto input video using the libass library."),
@@ -207,22 +229,7 @@ AVFilter avfilter_vf_ass = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = ff_null_get_video_buffer,
- .start_frame = ff_null_start_frame,
- .draw_slice = null_draw_slice,
- .end_frame = end_frame,
- .config_props = config_input,
- .min_perms = AV_PERM_WRITE | AV_PERM_READ },
- { .name = NULL}
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO, },
- { .name = NULL}
- },
- .priv_class = &ass_class,
+ .inputs = ass_inputs,
+ .outputs = ass_outputs,
+ .priv_class = &ass_class,
};
diff --git a/libavfilter/vf_bbox.c b/libavfilter/vf_bbox.c
index 07ac550..698456d 100644
--- a/libavfilter/vf_bbox.c
+++ b/libavfilter/vf_bbox.c
@@ -89,26 +89,32 @@ static int end_frame(AVFilterLink *inlink)
return ff_end_frame(inlink->dst->outputs[0]);
}
+static const AVFilterPad bbox_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad bbox_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_bbox = {
.name = "bbox",
.description = NULL_IF_CONFIG_SMALL("Compute bounding box for each frame."),
.priv_size = sizeof(BBoxContext),
.query_formats = query_formats,
.init = init,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = ff_null_get_video_buffer,
- .start_frame = ff_null_start_frame,
- .end_frame = end_frame,
- .min_perms = AV_PERM_READ, },
- { .name = NULL }
- },
-
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO },
- { .name = NULL }
- },
+ .inputs = bbox_inputs,
+ .outputs = bbox_outputs,
};
diff --git a/libavfilter/vf_blackdetect.c b/libavfilter/vf_blackdetect.c
index 17f5acb..a981212 100644
--- a/libavfilter/vf_blackdetect.c
+++ b/libavfilter/vf_blackdetect.c
@@ -197,29 +197,35 @@ static int end_frame(AVFilterLink *inlink)
return ff_end_frame(inlink->dst->outputs[0]);
}
+static const AVFilterPad blackdetect_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_input,
+ .draw_slice = draw_slice,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
+ .end_frame = end_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad blackdetect_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_blackdetect = {
.name = "blackdetect",
.description = NULL_IF_CONFIG_SMALL("Detect video intervals that are (almost) black."),
.priv_size = sizeof(BlackDetectContext),
.init = init,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_input,
- .draw_slice = draw_slice,
- .get_video_buffer = ff_null_get_video_buffer,
- .start_frame = ff_null_start_frame,
- .end_frame = end_frame, },
- { .name = NULL }
- },
-
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame, },
- { .name = NULL }
- },
- .priv_class = &blackdetect_class,
+ .inputs = blackdetect_inputs,
+ .outputs = blackdetect_outputs,
+ .priv_class = &blackdetect_class,
};
diff --git a/libavfilter/vf_colormatrix.c b/libavfilter/vf_colormatrix.c
index 7200e1d..9b26745 100644
--- a/libavfilter/vf_colormatrix.c
+++ b/libavfilter/vf_colormatrix.c
@@ -369,6 +369,28 @@ static int end_frame(AVFilterLink *link)
static int null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) { return 0; }
+static const AVFilterPad colormatrix_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_input,
+ .min_perms = AV_PERM_READ | AV_PERM_WRITE,
+ .start_frame = start_frame,
+ .get_video_buffer = get_video_buffer,
+ .draw_slice = null_draw_slice,
+ .end_frame = end_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad colormatrix_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_colormatrix = {
.name = "colormatrix",
.description = NULL_IF_CONFIG_SMALL("Color matrix conversion"),
@@ -376,18 +398,6 @@ AVFilter avfilter_vf_colormatrix = {
.priv_size = sizeof(ColorMatrixContext),
.init = init,
.query_formats = query_formats,
-
- .inputs = (AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_input,
- .min_perms = AV_PERM_READ | AV_PERM_WRITE,
- .start_frame = start_frame,
- .get_video_buffer = get_video_buffer,
- .draw_slice = null_draw_slice,
- .end_frame = end_frame, },
- { .name = NULL }},
-
- .outputs = (AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO, },
- { .name = NULL }},
+ .inputs = colormatrix_inputs,
+ .outputs = colormatrix_outputs,
};
diff --git a/libavfilter/vf_decimate.c b/libavfilter/vf_decimate.c
index 8d54d39..0f516e2 100644
--- a/libavfilter/vf_decimate.c
+++ b/libavfilter/vf_decimate.c
@@ -235,6 +235,29 @@ static int request_frame(AVFilterLink *outlink)
return ret;
}
+static const AVFilterPad decimate_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .config_props = config_input,
+ .start_frame = start_frame,
+ .draw_slice = draw_slice,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
+ },
+ { NULL }
+};
+
+static const AVFilterPad decimate_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_decimate = {
.name = "decimate",
.description = NULL_IF_CONFIG_SMALL("Remove near-duplicate frames."),
@@ -243,26 +266,6 @@ AVFilter avfilter_vf_decimate = {
.priv_size = sizeof(DecimateContext),
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = ff_null_get_video_buffer,
- .config_props = config_input,
- .start_frame = start_frame,
- .draw_slice = draw_slice,
- .end_frame = end_frame,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
- },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- },
- { .name = NULL }
- },
+ .inputs = decimate_inputs,
+ .outputs = decimate_outputs,
};
diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c
index 0444de0..92fb1ea 100644
--- a/libavfilter/vf_deshake.c
+++ b/libavfilter/vf_deshake.c
@@ -538,6 +538,26 @@ static int draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
return 0;
}
+static const AVFilterPad deshake_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .draw_slice = draw_slice,
+ .end_frame = end_frame,
+ .config_props = config_props,
+ .min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
+ },
+ { NULL }
+};
+
+static const AVFilterPad deshake_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_deshake = {
.name = "deshake",
.description = NULL_IF_CONFIG_SMALL("Stabilize shaky video."),
@@ -547,16 +567,6 @@ AVFilter avfilter_vf_deshake = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .draw_slice = draw_slice,
- .end_frame = end_frame,
- .config_props = config_props,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE, },
- { .name = NULL}},
-
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO, },
- { .name = NULL}},
+ .inputs = deshake_inputs,
+ .outputs = deshake_outputs,
};
diff --git a/libavfilter/vf_edgedetect.c b/libavfilter/vf_edgedetect.c
index 6f89e52..b3a906b 100644
--- a/libavfilter/vf_edgedetect.c
+++ b/libavfilter/vf_edgedetect.c
@@ -299,6 +299,25 @@ static av_cold void uninit(AVFilterContext *ctx)
av_freep(&edgedetect->directions);
}
+static const AVFilterPad edgedetect_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_props,
+ .filter_frame = filter_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad edgedetect_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_edgedetect = {
.name = "edgedetect",
.description = NULL_IF_CONFIG_SMALL("Detect and draw edge."),
@@ -306,22 +325,6 @@ AVFilter avfilter_vf_edgedetect = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_props,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ
- },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- },
- { .name = NULL }
- },
+ .inputs = edgedetect_inputs,
+ .outputs = edgedetect_outputs,
};
diff --git a/libavfilter/vf_framestep.c b/libavfilter/vf_framestep.c
index dcb2665..2d14d3c 100644
--- a/libavfilter/vf_framestep.c
+++ b/libavfilter/vf_framestep.c
@@ -111,30 +111,33 @@ static int request_frame(AVFilterLink *outlink)
return ret;
}
+static const AVFilterPad framestep_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = start_frame,
+ .draw_slice = draw_slice,
+ .end_frame = end_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad framestep_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_output_props,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_framestep = {
.name = "framestep",
.description = NULL_IF_CONFIG_SMALL("Select one frame every N frames."),
.init = init,
.priv_size = sizeof(FrameStepContext),
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = ff_null_get_video_buffer,
- .start_frame = start_frame,
- .draw_slice = draw_slice,
- .end_frame = end_frame,
- },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_output_props,
- .request_frame = request_frame,
- },
- { .name = NULL }
- },
+ .inputs = framestep_inputs,
+ .outputs = framestep_outputs,
};
diff --git a/libavfilter/vf_hue.c b/libavfilter/vf_hue.c
index 7e421bd..4e3df6c 100644
--- a/libavfilter/vf_hue.c
+++ b/libavfilter/vf_hue.c
@@ -396,6 +396,26 @@ static int process_command(AVFilterContext *ctx, const char *cmd, const char *ar
return AVERROR(ENOSYS);
}
+static const AVFilterPad hue_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .start_frame = start_frame,
+ .draw_slice = draw_slice,
+ .config_props = config_props,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad hue_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_hue = {
.name = "hue",
.description = NULL_IF_CONFIG_SMALL("Adjust the hue and saturation of the input video."),
@@ -406,24 +426,7 @@ AVFilter avfilter_vf_hue = {
.uninit = uninit,
.query_formats = query_formats,
.process_command = process_command,
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .start_frame = start_frame,
- .draw_slice = draw_slice,
- .config_props = config_props,
- .min_perms = AV_PERM_READ,
- },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- },
- { .name = NULL }
- },
- .priv_class = &hue_class,
+ .inputs = hue_inputs,
+ .outputs = hue_outputs,
+ .priv_class = &hue_class,
};
diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c
index d7c6544..cc20fac 100644
--- a/libavfilter/vf_idet.c
+++ b/libavfilter/vf_idet.c
@@ -310,6 +310,29 @@ static av_cold int init(AVFilterContext *ctx, const char *args)
static int null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) { return 0; }
+static const AVFilterPad idet_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .start_frame = start_frame,
+ .draw_slice = null_draw_slice,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_PRESERVE,
+ },
+ { NULL }
+};
+
+static const AVFilterPad idet_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .rej_perms = AV_PERM_WRITE,
+ .poll_frame = poll_frame,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_idet = {
.name = "idet",
.description = NULL_IF_CONFIG_SMALL("Interlace detect Filter."),
@@ -318,19 +341,6 @@ AVFilter avfilter_vf_idet = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .start_frame = start_frame,
- .draw_slice = null_draw_slice,
- .end_frame = end_frame,
- .min_perms = AV_PERM_PRESERVE },
- { .name = NULL}},
-
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .rej_perms = AV_PERM_WRITE,
- .poll_frame = poll_frame,
- .request_frame = request_frame, },
- { .name = NULL}},
+ .inputs = idet_inputs,
+ .outputs = idet_outputs,
};
diff --git a/libavfilter/vf_mp.c b/libavfilter/vf_mp.c
index 8042340..c70ab28 100644
--- a/libavfilter/vf_mp.c
+++ b/libavfilter/vf_mp.c
@@ -863,6 +863,29 @@ static int end_frame(AVFilterLink *inlink)
return 0;
}
+static const AVFilterPad mp_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .start_frame = start_frame,
+ .draw_slice = null_draw_slice,
+ .end_frame = end_frame,
+ .config_props = config_inprops,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad mp_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ .config_props = config_outprops,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_mp = {
.name = "mp",
.description = NULL_IF_CONFIG_SMALL("Apply a libmpcodecs filter to the input video."),
@@ -870,18 +893,6 @@ AVFilter avfilter_vf_mp = {
.uninit = uninit,
.priv_size = sizeof(MPContext),
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .start_frame = start_frame,
- .draw_slice = null_draw_slice,
- .end_frame = end_frame,
- .config_props = config_inprops,
- .min_perms = AV_PERM_READ, },
- { .name = NULL}},
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- .config_props = config_outprops, },
- { .name = NULL}},
+ .inputs = mp_inputs,
+ .outputs = mp_outputs,
};
diff --git a/libavfilter/vf_removelogo.c b/libavfilter/vf_removelogo.c
index 1b02018..f2228be 100644
--- a/libavfilter/vf_removelogo.c
+++ b/libavfilter/vf_removelogo.c
@@ -535,6 +535,28 @@ static void uninit(AVFilterContext *ctx)
static int null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) { return 0; }
+static const AVFilterPad removelogo_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .config_props = config_props_input,
+ .draw_slice = null_draw_slice,
+ .start_frame = start_frame,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_WRITE | AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad removelogo_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_removelogo = {
.name = "removelogo",
.description = NULL_IF_CONFIG_SMALL("Remove a TV logo based on a mask image."),
@@ -542,21 +564,6 @@ AVFilter avfilter_vf_removelogo = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = ff_null_get_video_buffer,
- .config_props = config_props_input,
- .draw_slice = null_draw_slice,
- .start_frame = start_frame,
- .end_frame = end_frame,
- .min_perms = AV_PERM_WRITE | AV_PERM_READ },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO, },
- { .name = NULL }
- },
+ .inputs = removelogo_inputs,
+ .outputs = removelogo_outputs,
};
diff --git a/libavfilter/vf_setfield.c b/libavfilter/vf_setfield.c
index 93d30c7..c62ee36 100644
--- a/libavfilter/vf_setfield.c
+++ b/libavfilter/vf_setfield.c
@@ -83,23 +83,30 @@ static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
return ff_start_frame(inlink->dst->outputs[0], outpicref);
}
+static const AVFilterPad setfield_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = start_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad setfield_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_setfield = {
.name = "setfield",
.description = NULL_IF_CONFIG_SMALL("Force field for the output video frame."),
.init = init,
.priv_size = sizeof(SetFieldContext),
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = ff_null_get_video_buffer,
- .start_frame = start_frame, },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO, },
- { .name = NULL }
- },
+ .inputs = setfield_inputs,
+ .outputs = setfield_outputs,
};
diff --git a/libavfilter/vf_smartblur.c b/libavfilter/vf_smartblur.c
index 0df3ca0..2a83cd0 100644
--- a/libavfilter/vf_smartblur.c
+++ b/libavfilter/vf_smartblur.c
@@ -277,6 +277,25 @@ static int end_frame(AVFilterLink *inlink)
return ff_end_frame(outlink);
}
+static const AVFilterPad smartblur_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .end_frame = end_frame,
+ .config_props = config_props,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad smartblur_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_smartblur = {
.name = "smartblur",
.description = NULL_IF_CONFIG_SMALL("Blur the input video without impacting the outlines."),
@@ -286,22 +305,6 @@ AVFilter avfilter_vf_smartblur = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .end_frame = end_frame,
- .config_props = config_props,
- .min_perms = AV_PERM_READ,
- },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- },
- { .name = NULL }
- }
+ .inputs = smartblur_inputs,
+ .outputs = smartblur_outputs,
};
diff --git a/libavfilter/vf_super2xsai.c b/libavfilter/vf_super2xsai.c
index f85674c..af4adff 100644
--- a/libavfilter/vf_super2xsai.c
+++ b/libavfilter/vf_super2xsai.c
@@ -318,25 +318,32 @@ static int end_frame(AVFilterLink *inlink)
return ff_end_frame(outlink);
}
+static const AVFilterPad super2xsai_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_input,
+ .draw_slice = null_draw_slice,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad super2xsai_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_output,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_super2xsai = {
.name = "super2xsai",
.description = NULL_IF_CONFIG_SMALL("Scale the input by 2x using the Super2xSaI pixel art algorithm."),
.priv_size = sizeof(Super2xSaIContext),
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_input,
- .draw_slice = null_draw_slice,
- .end_frame = end_frame,
- .min_perms = AV_PERM_READ },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_output },
- { .name = NULL }
- },
+ .inputs = super2xsai_inputs,
+ .outputs = super2xsai_outputs,
};
diff --git a/libavfilter/vf_swapuv.c b/libavfilter/vf_swapuv.c
index bfe71e8..6345c0d 100644
--- a/libavfilter/vf_swapuv.c
+++ b/libavfilter/vf_swapuv.c
@@ -74,22 +74,29 @@ static int query_formats(AVFilterContext *ctx)
return 0;
}
+static const AVFilterPad swapuv_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer = get_video_buffer,
+ .start_frame = start_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad swapuv_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_swapuv = {
.name = "swapuv",
.description = NULL_IF_CONFIG_SMALL("Swap U and V components."),
.priv_size = 0,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = get_video_buffer,
- .start_frame = start_frame, },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO, },
- { .name = NULL }
- },
+ .inputs = swapuv_inputs,
+ .outputs = swapuv_outputs,
};
diff --git a/libavfilter/vf_thumbnail.c b/libavfilter/vf_thumbnail.c
index 5936a19..5dda94e 100644
--- a/libavfilter/vf_thumbnail.c
+++ b/libavfilter/vf_thumbnail.c
@@ -219,6 +219,29 @@ static int query_formats(AVFilterContext *ctx)
return 0;
}
+static const AVFilterPad thumbnail_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .min_perms = AV_PERM_PRESERVE,
+ .start_frame = null_start_frame,
+ .draw_slice = draw_slice,
+ .end_frame = end_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad thumbnail_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ .poll_frame = poll_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_thumbnail = {
.name = "thumbnail",
.description = NULL_IF_CONFIG_SMALL("Select the most representative frame in a given sequence of consecutive frames."),
@@ -226,21 +249,6 @@ AVFilter avfilter_vf_thumbnail = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = ff_null_get_video_buffer,
- .min_perms = AV_PERM_PRESERVE,
- .start_frame = null_start_frame,
- .draw_slice = draw_slice,
- .end_frame = end_frame,
- },{ .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- .poll_frame = poll_frame,
- },{ .name = NULL }
- },
+ .inputs = thumbnail_inputs,
+ .outputs = thumbnail_outputs,
};
diff --git a/libavfilter/vf_tile.c b/libavfilter/vf_tile.c
index 4c619ff..484a976 100644
--- a/libavfilter/vf_tile.c
+++ b/libavfilter/vf_tile.c
@@ -240,6 +240,27 @@ static int request_frame(AVFilterLink *outlink)
return 0;
}
+static const AVFilterPad tile_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .start_frame = start_frame,
+ .draw_slice = draw_slice,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad tile_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_props,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
AVFilter avfilter_vf_tile = {
.name = "tile",
@@ -247,21 +268,7 @@ AVFilter avfilter_vf_tile = {
.init = init,
.query_formats = query_formats,
.priv_size = sizeof(TileContext),
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .start_frame = start_frame,
- .draw_slice = draw_slice,
- .end_frame = end_frame,
- .min_perms = AV_PERM_READ, },
- { .name = NULL }
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_props,
- .request_frame = request_frame },
- { .name = NULL }
- },
- .priv_class = &tile_class,
+ .inputs = tile_inputs,
+ .outputs = tile_outputs,
+ .priv_class = &tile_class,
};
diff --git a/libavfilter/vf_tinterlace.c b/libavfilter/vf_tinterlace.c
index 6cc8ad6..d24105e 100644
--- a/libavfilter/vf_tinterlace.c
+++ b/libavfilter/vf_tinterlace.c
@@ -351,6 +351,27 @@ static int request_frame(AVFilterLink *outlink)
static int null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) { return 0; }
+static const AVFilterPad tinterlace_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .start_frame = start_frame,
+ .draw_slice = null_draw_slice,
+ .end_frame = end_frame,
+ },
+ { NULL }
+};
+
+static const AVFilterPad tinterlace_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .config_props = config_out_props,
+ .request_frame = request_frame,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_tinterlace = {
.name = "tinterlace",
.description = NULL_IF_CONFIG_SMALL("Perform temporal field interlacing."),
@@ -358,20 +379,6 @@ AVFilter avfilter_vf_tinterlace = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .start_frame = start_frame,
- .draw_slice = null_draw_slice,
- .end_frame = end_frame, },
- { .name = NULL}
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .config_props = config_out_props,
- .request_frame = request_frame },
- { .name = NULL}
- },
+ .inputs = tinterlace_inputs,
+ .outputs = tinterlace_outputs,
};
diff --git a/libavfilter/vsrc_cellauto.c b/libavfilter/vsrc_cellauto.c
index 3a4726b..27a4d18 100644
--- a/libavfilter/vsrc_cellauto.c
+++ b/libavfilter/vsrc_cellauto.c
@@ -335,6 +335,16 @@ static int query_formats(AVFilterContext *ctx)
return 0;
}
+static const AVFilterPad cellauto_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ .config_props = config_props,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vsrc_cellauto = {
.name = "cellauto",
.description = NULL_IF_CONFIG_SMALL("Create pattern generated by an elementary cellular automaton."),
@@ -342,16 +352,7 @@ AVFilter avfilter_vsrc_cellauto = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = NULL}
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- .config_props = config_props },
- { .name = NULL}
- },
- .priv_class = &cellauto_class,
+ .inputs = NULL,
+ .outputs = cellauto_outputs,
+ .priv_class = &cellauto_class,
};
diff --git a/libavfilter/vsrc_life.c b/libavfilter/vsrc_life.c
index 9ea4147..ebe6cc2 100644
--- a/libavfilter/vsrc_life.c
+++ b/libavfilter/vsrc_life.c
@@ -464,6 +464,16 @@ static int query_formats(AVFilterContext *ctx)
return 0;
}
+static const AVFilterPad life_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ .config_props = config_props,
+ },
+ { NULL}
+};
+
AVFilter avfilter_vsrc_life = {
.name = "life",
.description = NULL_IF_CONFIG_SMALL("Create life."),
@@ -471,16 +481,7 @@ AVFilter avfilter_vsrc_life = {
.init = init,
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = NULL}
- },
- .outputs = (const AVFilterPad[]) {
- { .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- .config_props = config_props },
- { .name = NULL}
- },
- .priv_class = &life_class,
+ .inputs = NULL,
+ .outputs = life_outputs,
+ .priv_class = &life_class,
};
diff --git a/libavfilter/vsrc_mandelbrot.c b/libavfilter/vsrc_mandelbrot.c
index 4d08890..661f9dd 100644
--- a/libavfilter/vsrc_mandelbrot.c
+++ b/libavfilter/vsrc_mandelbrot.c
@@ -396,6 +396,16 @@ static int request_frame(AVFilterLink *link)
return 0;
}
+static const AVFilterPad mandelbrot_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ .config_props = config_props,
+ },
+ { NULL },
+};
+
AVFilter avfilter_vsrc_mandelbrot = {
.name = "mandelbrot",
.description = NULL_IF_CONFIG_SMALL("Render a Mandelbrot fractal."),
@@ -405,12 +415,6 @@ AVFilter avfilter_vsrc_mandelbrot = {
.uninit = uninit,
.query_formats = query_formats,
-
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
-
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- .config_props = config_props },
- { .name = NULL}},
+ .inputs = NULL,
+ .outputs = mandelbrot_outputs,
};
diff --git a/libavfilter/vsrc_mptestsrc.c b/libavfilter/vsrc_mptestsrc.c
index 2b41637..5bd5083 100644
--- a/libavfilter/vsrc_mptestsrc.c
+++ b/libavfilter/vsrc_mptestsrc.c
@@ -364,6 +364,16 @@ static int request_frame(AVFilterLink *outlink)
return 0;
}
+static const AVFilterPad mptestsrc_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ .config_props = config_props,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vsrc_mptestsrc = {
.name = "mptestsrc",
.description = NULL_IF_CONFIG_SMALL("Generate various test pattern."),
@@ -372,11 +382,6 @@ AVFilter avfilter_vsrc_mptestsrc = {
.query_formats = query_formats,
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
-
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- .config_props = config_props, },
- { .name = NULL }},
+ .inputs = NULL,
+ .outputs = mptestsrc_outputs,
};
diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index 8642e1b..185d382 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -256,6 +256,16 @@ static int color_config_props(AVFilterLink *inlink)
return 0;
}
+static const AVFilterPad color_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ .config_props = color_config_props,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vsrc_color = {
.name = "color",
.description = NULL_IF_CONFIG_SMALL("Provide an uniformly colored input."),
@@ -265,22 +275,9 @@ AVFilter avfilter_vsrc_color = {
.uninit = uninit,
.query_formats = color_query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = NULL }
- },
-
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- .config_props = color_config_props,
- },
- { .name = NULL }
- },
-
- .priv_class = &color_class,
+ .inputs = NULL,
+ .outputs = color_outputs,
+ .priv_class = &color_class,
};
#endif /* CONFIG_COLOR_FILTER */
@@ -301,19 +298,24 @@ static av_cold int nullsrc_init(AVFilterContext *ctx, const char *args)
return init(ctx, args);
}
+static const AVFilterPad nullsrc_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ .config_props = config_props,
+ },
+ { NULL },
+};
+
AVFilter avfilter_vsrc_nullsrc = {
.name = "nullsrc",
.description = NULL_IF_CONFIG_SMALL("Null video source, return unprocessed video frames."),
.init = nullsrc_init,
.uninit = uninit,
.priv_size = sizeof(TestSourceContext),
-
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- .config_props = config_props, },
- { .name = NULL}},
+ .inputs = NULL,
+ .outputs = nullsrc_outputs,
.priv_class = &nullsrc_class,
};
@@ -767,6 +769,16 @@ static int smptebars_config_props(AVFilterLink *outlink)
return config_props(outlink);
}
+static const AVFilterPad smptebars_outputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .request_frame = request_frame,
+ .config_props = smptebars_config_props,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vsrc_smptebars = {
.name = "smptebars",
.description = NULL_IF_CONFIG_SMALL("Generate SMPTE color bars."),
@@ -775,22 +787,9 @@ AVFilter avfilter_vsrc_smptebars = {
.uninit = uninit,
.query_formats = smptebars_query_formats,
-
- .inputs = (const AVFilterPad[]) {
- { .name = NULL }
- },
-
- .outputs = (const AVFilterPad[]) {
- {
- .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .request_frame = request_frame,
- .config_props = smptebars_config_props,
- },
- { .name = NULL }
- },
-
- .priv_class = &smptebars_class,
+ .inputs = NULL,
+ .outputs = smptebars_outputs,
+ .priv_class = &smptebars_class,
};
#endif /* CONFIG_SMPTEBARS_FILTER */
OpenPOWER on IntegriCloud