}
}
-static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
+static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
{
AVFilterContext *ctx = inlink->dst;
AMergeContext *am = ctx->priv;
}
}
}
- return ff_filter_samples(ctx->outputs[0], outbuf);
+ return ff_filter_frame(ctx->outputs[0], outbuf);
}
static av_cold int init(AVFilterContext *ctx, const char *args)
AVFilterPad pad = {
.name = name,
.type = AVMEDIA_TYPE_AUDIO,
- .filter_samples = filter_samples,
+ .filter_frame = filter_frame,
.min_perms = AV_PERM_READ | AV_PERM_PRESERVE,
};
if (!name)
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 "
.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,
};