#ifdef DEBUG
show_cellauto_row(outlink->src);
#endif
-
- ff_start_frame(outlink, avfilter_ref_buffer(picref, ~0));
- ff_draw_slice(outlink, 0, cellauto->h, 1);
- ff_end_frame(outlink);
- avfilter_unref_buffer(picref);
+ ff_filter_frame(outlink, picref);
return 0;
}
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."),
.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,
};