diff options
author | Limin Wang <lance.lmwang@gmail.com> | 2020-08-27 07:30:30 +0800 |
---|---|---|
committer | Limin Wang <lance.lmwang@gmail.com> | 2020-08-27 07:30:30 +0800 |
commit | 71ec3e4583def61fbb32a4815376773ef7c80dee (patch) | |
tree | a98e85b05a9184ccbda1d6438bf64874b2b277db /libavfilter/vf_yadif.c | |
parent | ca8e5dedc7fabae3df76ea11d9952070cbb19620 (diff) | |
download | ffmpeg-71ec3e4583def61fbb32a4815376773ef7c80dee.tar.gz |
Revert "avfilter/yadif: simplify the code for better readability"
This reverts commit 2a9b934675b9e2d3850b46f8a618c19b03f02551.
Diffstat (limited to 'libavfilter/vf_yadif.c')
-rw-r--r-- | libavfilter/vf_yadif.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c index acc55a481f..43dea67add 100644 --- a/libavfilter/vf_yadif.c +++ b/libavfilter/vf_yadif.c @@ -192,7 +192,7 @@ static int filter_slice(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) YADIFContext *s = ctx->priv; ThreadData *td = arg; int refs = s->cur->linesize[td->plane]; - int df = (s->depth + 7) / 8; + int df = (s->csp->comp[td->plane].depth + 7) / 8; int pix_3 = 3 * df; int slice_start = (td->h * jobnr ) / nb_jobs; int slice_end = (td->h * (jobnr+1)) / nb_jobs; @@ -233,13 +233,13 @@ static void filter(AVFilterContext *ctx, AVFrame *dstpic, ThreadData td = { .frame = dstpic, .parity = parity, .tff = tff }; int i; - for (i = 0; i < yadif->nb_components; i++) { + for (i = 0; i < yadif->csp->nb_components; i++) { int w = dstpic->width; int h = dstpic->height; if (i == 1 || i == 2) { - w = AV_CEIL_RSHIFT(w, yadif->hsub); - h = AV_CEIL_RSHIFT(h, yadif->vsub); + w = AV_CEIL_RSHIFT(w, yadif->csp->log2_chroma_w); + h = AV_CEIL_RSHIFT(h, yadif->csp->log2_chroma_h); } @@ -292,7 +292,6 @@ static int config_output(AVFilterLink *outlink) { AVFilterContext *ctx = outlink->src; YADIFContext *s = ctx->priv; - const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(outlink->format); outlink->time_base.num = ctx->inputs[0]->time_base.num; outlink->time_base.den = ctx->inputs[0]->time_base.den * 2; @@ -308,12 +307,9 @@ static int config_output(AVFilterLink *outlink) return AVERROR(EINVAL); } + s->csp = av_pix_fmt_desc_get(outlink->format); s->filter = filter; - s->depth = desc->comp[0].depth; - s->nb_components = desc->nb_components; - s->hsub = desc->log2_chroma_w; - s->vsub = desc->log2_chroma_h; - if (s->depth > 8) { + if (s->csp->comp[0].depth > 8) { s->filter_line = filter_line_c_16bit; s->filter_edges = filter_edges_16bit; } else { |