static int config_input(AVFilterLink *inlink) { HQDN3DContext *hqdn3d = inlink->dst->priv; const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); int i; hqdn3d->hsub = desc->log2_chroma_w; hqdn3d->vsub = desc->log2_chroma_h; hqdn3d->depth = desc->comp[0].depth_minus1+1; hqdn3d->line = av_malloc(inlink->w * sizeof(*hqdn3d->line)); if (!hqdn3d->line) return AVERROR(ENOMEM); for (i = 0; i < 4; i++) { hqdn3d->coefs[i] = precalc_coefs(hqdn3d->strength[i], hqdn3d->depth); if (!hqdn3d->coefs[i]) return AVERROR(ENOMEM); } if (ARCH_X86) ff_hqdn3d_init_x86(hqdn3d); return 0; }
static int config_input(AVFilterLink *inlink) { HQDN3DContext *s = inlink->dst->priv; const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); int i; uninit(inlink->dst); s->hsub = desc->log2_chroma_w; s->vsub = desc->log2_chroma_h; s->depth = desc->comp[0].depth; s->line = av_malloc_array(inlink->w, sizeof(*s->line)); if (!s->line) return AVERROR(ENOMEM); for (i = 0; i < 4; i++) { s->coefs[i] = precalc_coefs(s->strength[i], s->depth); if (!s->coefs[i]) return AVERROR(ENOMEM); } if (ARCH_X86) ff_hqdn3d_init_x86(s); return 0; }