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."),
.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 = {
.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_samples(AVFilterLink *link, AVFilterBufferRef *samplesref)
+static int filter_frame(AVFilterLink *link, AVFilterBufferRef *samplesref)
{
end_frame(link);
return 0;
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."),
.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_samples = filter_samples,
- .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 = {
.uninit = asink_uninit,
.priv_size = sizeof(BufferSinkContext),
.query_formats = asink_query_formats,
-
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_samples = filter_samples,
- .min_perms = AV_PERM_READ | AV_PERM_PRESERVE, },
- { .name = NULL }},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .inputs = abuffersink_inputs,
+ .outputs = NULL,
};
/* Libav compatibility API */
if (ctx->filter-> inputs[0].start_frame ==
avfilter_vsink_buffer. inputs[0].start_frame ||
- ctx->filter-> inputs[0].filter_samples ==
- avfilter_asink_abuffer.inputs[0].filter_samples)
+ ctx->filter-> inputs[0].filter_frame ==
+ avfilter_asink_abuffer.inputs[0].filter_frame)
return ff_buffersink_read_compat(ctx, buf);
av_assert0(ctx->filter-> inputs[0].end_frame ==
avfilter_vsink_ffbuffersink. inputs[0].end_frame ||
- ctx->filter-> inputs[0].filter_samples ==
- avfilter_asink_ffabuffersink.inputs[0].filter_samples);
+ ctx->filter-> inputs[0].filter_frame ==
+ avfilter_asink_ffabuffersink.inputs[0].filter_frame);
ret = av_buffersink_get_buffer_ref(ctx, &tbuf,
buf ? 0 : AV_BUFFERSINK_FLAG_PEEK);
AVFilterLink *link = ctx->inputs[0];
int nb_channels = av_get_channel_layout_nb_channels(link->channel_layout);
- if (ctx->filter-> inputs[0].filter_samples ==
- avfilter_asink_abuffer.inputs[0].filter_samples)
+ if (ctx->filter-> inputs[0].filter_frame ==
+ avfilter_asink_abuffer.inputs[0].filter_frame)
return ff_buffersink_read_samples_compat(ctx, buf, nb_samples);
- av_assert0(ctx->filter-> inputs[0].filter_samples ==
- avfilter_asink_ffabuffersink.inputs[0].filter_samples);
+ av_assert0(ctx->filter-> inputs[0].filter_frame ==
+ avfilter_asink_ffabuffersink.inputs[0].filter_frame);
tbuf = ff_get_audio_buffer(link, AV_PERM_WRITE, nb_samples);
if (!tbuf)