return 0;
}
-static int check_ir(AVFilterLink *link, AVFrame *frame)
+static int check_ir(AVFilterLink *link)
{
AVFilterContext *ctx = link->dst;
AudioFIRContext *s = ctx->priv;
if (s->response)
FF_FILTER_FORWARD_STATUS_BACK_ALL(ctx->outputs[1], ctx);
if (!s->eof_coeffs[s->selir]) {
- AVFrame *ir = NULL;
-
- ret = check_ir(ctx->inputs[1 + s->selir], ir);
+ ret = check_ir(ctx->inputs[1 + s->selir]);
if (ret < 0)
return ret;
if (s->response) {
AVFilterLink *videolink = ctx->outputs[1];
formats = ff_make_format_list(pix_fmts);
- if ((ret = ff_formats_ref(formats, &videolink->in_formats)) < 0)
+ if ((ret = ff_formats_ref(formats, &videolink->incfg.formats)) < 0)
return ret;
}
} else {
AVFilterChannelLayouts *mono = NULL;
- if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->out_channel_layouts)) < 0)
+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->inputs[0]->outcfg.channel_layouts)) < 0)
return ret;
- if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->in_channel_layouts)) < 0)
+ if ((ret = ff_channel_layouts_ref(layouts, &ctx->outputs[0]->incfg.channel_layouts)) < 0)
return ret;
ret = ff_add_channel_layout(&mono, AV_CH_LAYOUT_MONO);
if (ret)
return ret;
for (int i = 1; i < ctx->nb_inputs; i++) {
- if ((ret = ff_channel_layouts_ref(mono, &ctx->inputs[i]->out_channel_layouts)) < 0)
+ if ((ret = ff_channel_layouts_ref(mono, &ctx->inputs[i]->outcfg.channel_layouts)) < 0)
return ret;
}
}
av_frame_free(&s->ir[i]);
}
- for (int i = 0; i < ctx->nb_inputs; i++)
+ for (unsigned i = 1; i < ctx->nb_inputs; i++)
av_freep(&ctx->input_pads[i].name);
- for (int i = 0; i < ctx->nb_outputs; i++)
- av_freep(&ctx->output_pads[i].name);
av_frame_free(&s->video);
}
int ret;
pad = (AVFilterPad) {
- .name = av_strdup("main"),
+ .name = "main",
.type = AVMEDIA_TYPE_AUDIO,
};
- if (!pad.name)
- return AVERROR(ENOMEM);
-
ret = ff_insert_inpad(ctx, 0, &pad);
- if (ret < 0) {
- av_freep(&pad.name);
+ if (ret < 0)
return ret;
- }
for (int n = 0; n < s->nb_irs; n++) {
pad = (AVFilterPad) {
}
pad = (AVFilterPad) {
- .name = av_strdup("default"),
+ .name = "default",
.type = AVMEDIA_TYPE_AUDIO,
.config_props = config_output,
};
- if (!pad.name)
- return AVERROR(ENOMEM);
-
ret = ff_insert_outpad(ctx, 0, &pad);
- if (ret < 0) {
- av_freep(&pad.name);
+ if (ret < 0)
return ret;
- }
if (s->response) {
vpad = (AVFilterPad){
- .name = av_strdup("filter_response"),
+ .name = "filter_response",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_video,
};
- if (!vpad.name)
- return AVERROR(ENOMEM);
ret = ff_insert_outpad(ctx, 1, &vpad);
- if (ret < 0) {
- av_freep(&vpad.name);
+ if (ret < 0)
return ret;
- }
}
s->fdsp = avpriv_float_dsp_alloc(0);
AVFILTER_DEFINE_CLASS(afir);
-AVFilter ff_af_afir = {
+const AVFilter ff_af_afir = {
.name = "afir",
.description = NULL_IF_CONFIG_SMALL("Apply Finite Impulse Response filter with supplied coefficients in additional stream(s)."),
.priv_size = sizeof(AudioFIRContext),