From 59ee9f78b0cc4fb84ae606fa317d8102ad32a627 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 6 Oct 2012 13:29:37 +0200 Subject: [PATCH] lavfi: do not use av_pix_fmt_descriptors directly. --- libavfilter/avfilter.c | 2 +- libavfilter/buffersrc.c | 2 +- libavfilter/drawutils.c | 2 +- libavfilter/filtfmts.c | 4 ++-- libavfilter/formats.c | 6 ++++-- libavfilter/vf_boxblur.c | 2 +- libavfilter/vf_crop.c | 10 +++++----- libavfilter/vf_cropdetect.c | 2 +- libavfilter/vf_delogo.c | 5 +++-- libavfilter/vf_drawbox.c | 5 +++-- libavfilter/vf_drawtext.c | 2 +- libavfilter/vf_fade.c | 2 +- libavfilter/vf_fieldorder.c | 13 +++++++------ libavfilter/vf_gradfun.c | 5 +++-- libavfilter/vf_hflip.c | 6 +++--- libavfilter/vf_hqdn3d.c | 7 ++++--- libavfilter/vf_lut.c | 2 +- libavfilter/vf_overlay.c | 6 +++--- libavfilter/vf_pad.c | 2 +- libavfilter/vf_pixdesctest.c | 2 +- libavfilter/vf_scale.c | 18 ++++++++++-------- libavfilter/vf_showinfo.c | 5 +++-- libavfilter/vf_slicify.c | 3 ++- libavfilter/vf_transpose.c | 9 +++++---- libavfilter/vf_unsharp.c | 5 +++-- libavfilter/vf_vflip.c | 3 ++- libavfilter/vf_yadif.c | 2 +- libavfilter/video.c | 3 ++- libavfilter/vsrc_color.c | 2 +- 29 files changed, 76 insertions(+), 61 deletions(-) diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index 9c05933964..1e3b001fcd 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -214,7 +214,7 @@ void ff_dlog_link(void *ctx, AVFilterLink *link, int end) av_dlog(ctx, "link[%p s:%dx%d fmt:%-16s %-16s->%-16s]%s", link, link->w, link->h, - av_pix_fmt_descriptors[link->format].name, + av_get_pix_fmt_name(link->format), link->src ? link->src->filter->name : "", link->dst ? link->dst->filter->name : "", end ? "\n" : ""); diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index 2157ec8a1f..a2d5edbd5e 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -185,7 +185,7 @@ static av_cold int init_video(AVFilterContext *ctx, const char *args) if (!(c->fifo = av_fifo_alloc(sizeof(AVFilterBufferRef*)))) return AVERROR(ENOMEM); - av_log(ctx, AV_LOG_VERBOSE, "w:%d h:%d pixfmt:%s\n", c->w, c->h, av_pix_fmt_descriptors[c->pix_fmt].name); + av_log(ctx, AV_LOG_VERBOSE, "w:%d h:%d pixfmt:%s\n", c->w, c->h, av_get_pix_fmt_name(c->pix_fmt)); return 0; } diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 28b2283daa..e837760459 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -32,7 +32,7 @@ int ff_fill_line_with_color(uint8_t *line[4], int pixel_step[4], int w, uint8_t { uint8_t rgba_map[4] = {0}; int i; - const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[pix_fmt]; + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(pix_fmt); int hsub = pix_desc->log2_chroma_w; *is_packed_rgba = 1; diff --git a/libavfilter/filtfmts.c b/libavfilter/filtfmts.c index 8b23c7b844..3ec8116635 100644 --- a/libavfilter/filtfmts.c +++ b/libavfilter/filtfmts.c @@ -89,7 +89,7 @@ int main(int argc, char **argv) for (j = 0; j < fmts->format_count; j++) printf("INPUT[%d] %s: %s\n", i, filter_ctx->filter->inputs[i].name, - av_pix_fmt_descriptors[fmts->formats[j]].name); + av_get_pix_fmt_name(fmts->formats[j])); } /* print the supported formats in output */ @@ -98,7 +98,7 @@ int main(int argc, char **argv) for (j = 0; j < fmts->format_count; j++) printf("OUTPUT[%d] %s: %s\n", i, filter_ctx->filter->outputs[i].name, - av_pix_fmt_descriptors[fmts->formats[j]].name); + av_get_pix_fmt_name(fmts->formats[j])); } avfilter_free(filter_ctx); diff --git a/libavfilter/formats.c b/libavfilter/formats.c index 7737f177db..3b890d2bda 100644 --- a/libavfilter/formats.c +++ b/libavfilter/formats.c @@ -213,10 +213,12 @@ AVFilterFormats *ff_all_formats(enum AVMediaType type) int num_formats = type == AVMEDIA_TYPE_VIDEO ? AV_PIX_FMT_NB : type == AVMEDIA_TYPE_AUDIO ? AV_SAMPLE_FMT_NB : 0; - for (fmt = 0; fmt < num_formats; fmt++) + for (fmt = 0; fmt < num_formats; fmt++) { + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(fmt); if ((type != AVMEDIA_TYPE_VIDEO) || - (type == AVMEDIA_TYPE_VIDEO && !(av_pix_fmt_descriptors[fmt].flags & PIX_FMT_HWACCEL))) + (type == AVMEDIA_TYPE_VIDEO && !(desc->flags & PIX_FMT_HWACCEL))) ff_add_format(&ret, fmt); + } return ret; } diff --git a/libavfilter/vf_boxblur.c b/libavfilter/vf_boxblur.c index b638c71465..755d98ea2a 100644 --- a/libavfilter/vf_boxblur.c +++ b/libavfilter/vf_boxblur.c @@ -139,7 +139,7 @@ static int query_formats(AVFilterContext *ctx) static int config_input(AVFilterLink *inlink) { - const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[inlink->format]; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); AVFilterContext *ctx = inlink->dst; BoxBlurContext *boxblur = ctx->priv; int w = inlink->w, h = inlink->h; diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c index 0270a13e2c..f79f574315 100644 --- a/libavfilter/vf_crop.c +++ b/libavfilter/vf_crop.c @@ -158,7 +158,7 @@ static int config_input(AVFilterLink *link) { AVFilterContext *ctx = link->dst; CropContext *crop = ctx->priv; - const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[link->format]; + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(link->format); int ret; const char *expr; double res; @@ -177,8 +177,8 @@ static int config_input(AVFilterLink *link) crop->var_values[VAR_POS] = NAN; av_image_fill_max_pixsteps(crop->max_step, NULL, pix_desc); - crop->hsub = av_pix_fmt_descriptors[link->format].log2_chroma_w; - crop->vsub = av_pix_fmt_descriptors[link->format].log2_chroma_h; + crop->hsub = pix_desc->log2_chroma_w; + crop->vsub = pix_desc->log2_chroma_h; if ((ret = av_expr_parse_and_eval(&res, (expr = crop->ow_expr), var_names, crop->var_values, @@ -248,6 +248,7 @@ static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref) AVFilterContext *ctx = link->dst; CropContext *crop = ctx->priv; AVFilterBufferRef *ref2; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format); int i; ref2 = avfilter_ref_buffer(picref, ~0); @@ -281,8 +282,7 @@ static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref) ref2->data[0] += crop->y * ref2->linesize[0]; ref2->data[0] += crop->x * crop->max_step[0]; - if (!(av_pix_fmt_descriptors[link->format].flags & PIX_FMT_PAL || - av_pix_fmt_descriptors[link->format].flags & PIX_FMT_PSEUDOPAL)) { + if (!(desc->flags & PIX_FMT_PAL || desc->flags & PIX_FMT_PSEUDOPAL)) { for (i = 1; i < 3; i ++) { if (ref2->data[i]) { ref2->data[i] += (crop->y >> crop->vsub) * ref2->linesize[i]; diff --git a/libavfilter/vf_cropdetect.c b/libavfilter/vf_cropdetect.c index c930e00bb3..63a72cbd05 100644 --- a/libavfilter/vf_cropdetect.c +++ b/libavfilter/vf_cropdetect.c @@ -107,7 +107,7 @@ static int config_input(AVFilterLink *inlink) CropDetectContext *cd = ctx->priv; av_image_fill_max_pixsteps(cd->max_pixsteps, NULL, - &av_pix_fmt_descriptors[inlink->format]); + av_pix_fmt_desc_get(inlink->format)); cd->x1 = inlink->w - 1; cd->y1 = inlink->h - 1; diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c index d2ff4bf14b..361e0b797a 100644 --- a/libavfilter/vf_delogo.c +++ b/libavfilter/vf_delogo.c @@ -226,9 +226,10 @@ static int end_frame(AVFilterLink *inlink) AVFilterLink *outlink = inlink->dst->outputs[0]; AVFilterBufferRef *inpicref = inlink ->cur_buf; AVFilterBufferRef *outpicref = outlink->out_buf; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); int direct = inpicref->buf == outpicref->buf; - int hsub0 = av_pix_fmt_descriptors[inlink->format].log2_chroma_w; - int vsub0 = av_pix_fmt_descriptors[inlink->format].log2_chroma_h; + int hsub0 = desc->log2_chroma_w; + int vsub0 = desc->log2_chroma_h; int plane; int ret; diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c index 39dd2e597d..fbae0ee841 100644 --- a/libavfilter/vf_drawbox.c +++ b/libavfilter/vf_drawbox.c @@ -81,9 +81,10 @@ static int query_formats(AVFilterContext *ctx) static int config_input(AVFilterLink *inlink) { DrawBoxContext *drawbox = inlink->dst->priv; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); - drawbox->hsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_w; - drawbox->vsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_h; + drawbox->hsub = desc->log2_chroma_w; + drawbox->vsub = desc->log2_chroma_h; if (drawbox->w == 0) drawbox->w = inlink->w; if (drawbox->h == 0) drawbox->h = inlink->h; diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c index 10a7e66acd..ecc789c7f7 100644 --- a/libavfilter/vf_drawtext.c +++ b/libavfilter/vf_drawtext.c @@ -569,7 +569,7 @@ static int config_input(AVFilterLink *inlink) { AVFilterContext *ctx = inlink->dst; DrawTextContext *dtext = ctx->priv; - const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[inlink->format]; + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(inlink->format); int ret; dtext->hsub = pix_desc->log2_chroma_w; diff --git a/libavfilter/vf_fade.c b/libavfilter/vf_fade.c index 5fe489778e..8555798504 100644 --- a/libavfilter/vf_fade.c +++ b/libavfilter/vf_fade.c @@ -89,7 +89,7 @@ static int query_formats(AVFilterContext *ctx) static int config_props(AVFilterLink *inlink) { FadeContext *fade = inlink->dst->priv; - const AVPixFmtDescriptor *pixdesc = &av_pix_fmt_descriptors[inlink->format]; + const AVPixFmtDescriptor *pixdesc = av_pix_fmt_desc_get(inlink->format); fade->hsub = pixdesc->log2_chroma_w; fade->vsub = pixdesc->log2_chroma_h; diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c index d6875de99f..5e084ac4c8 100644 --- a/libavfilter/vf_fieldorder.c +++ b/libavfilter/vf_fieldorder.c @@ -78,15 +78,16 @@ static int query_formats(AVFilterContext *ctx) * a bitstream format, and does not have vertically sub-sampled chroma */ if (ctx->inputs[0]) { formats = NULL; - for (pix_fmt = 0; pix_fmt < AV_PIX_FMT_NB; pix_fmt++) - if (!( av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_HWACCEL - || av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_BITSTREAM) - && av_pix_fmt_descriptors[pix_fmt].nb_components - && !av_pix_fmt_descriptors[pix_fmt].log2_chroma_h - && (ret = ff_add_format(&formats, pix_fmt)) < 0) { + for (pix_fmt = 0; pix_fmt < AV_PIX_FMT_NB; pix_fmt++) { + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); + if (!(desc->flags & PIX_FMT_HWACCEL || + desc->flags & PIX_FMT_BITSTREAM) && + desc->nb_components && !desc->log2_chroma_h && + (ret = ff_add_format(&formats, pix_fmt)) < 0) { ff_formats_unref(&formats); return ret; } + } ff_formats_ref(formats, &ctx->inputs[0]->out_formats); ff_formats_ref(formats, &ctx->outputs[0]->in_formats); } diff --git a/libavfilter/vf_gradfun.c b/libavfilter/vf_gradfun.c index 31ed639542..7fbcf1a578 100644 --- a/libavfilter/vf_gradfun.c +++ b/libavfilter/vf_gradfun.c @@ -167,8 +167,9 @@ static int query_formats(AVFilterContext *ctx) static int config_input(AVFilterLink *inlink) { GradFunContext *gf = inlink->dst->priv; - int hsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_w; - int vsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_h; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); + int hsub = desc->log2_chroma_w; + int vsub = desc->log2_chroma_h; gf->buf = av_mallocz((FFALIGN(inlink->w, 16) * (gf->radius + 1) / 2 + 32) * sizeof(uint16_t)); if (!gf->buf) diff --git a/libavfilter/vf_hflip.c b/libavfilter/vf_hflip.c index ea1db4fe29..3ae0fc6062 100644 --- a/libavfilter/vf_hflip.c +++ b/libavfilter/vf_hflip.c @@ -75,11 +75,11 @@ static int query_formats(AVFilterContext *ctx) static int config_props(AVFilterLink *inlink) { FlipContext *flip = inlink->dst->priv; - const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[inlink->format]; + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(inlink->format); av_image_fill_max_pixsteps(flip->max_step, NULL, pix_desc); - flip->hsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_w; - flip->vsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_h; + flip->hsub = pix_desc->log2_chroma_w; + flip->vsub = pix_desc->log2_chroma_h; return 0; } diff --git a/libavfilter/vf_hqdn3d.c b/libavfilter/vf_hqdn3d.c index 03e1d830bd..4ed8905979 100644 --- a/libavfilter/vf_hqdn3d.c +++ b/libavfilter/vf_hqdn3d.c @@ -295,11 +295,12 @@ static int query_formats(AVFilterContext *ctx) 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 = av_pix_fmt_descriptors[inlink->format].log2_chroma_w; - hqdn3d->vsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_h; - hqdn3d->depth = av_pix_fmt_descriptors[inlink->format].comp[0].depth_minus1+1; + 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) diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c index 9f3cfe1a23..c54d6d54b7 100644 --- a/libavfilter/vf_lut.c +++ b/libavfilter/vf_lut.c @@ -212,7 +212,7 @@ static int config_props(AVFilterLink *inlink) { AVFilterContext *ctx = inlink->dst; LutContext *lut = ctx->priv; - const AVPixFmtDescriptor *desc = &av_pix_fmt_descriptors[inlink->format]; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); int min[4], max[4]; int val, comp, ret; diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index e8ff834dbb..8fb44e30d3 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -113,7 +113,7 @@ static int query_formats(AVFilterContext *ctx) static int config_input_main(AVFilterLink *inlink) { OverlayContext *over = inlink->dst->priv; - const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[inlink->format]; + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(inlink->format); av_image_fill_max_pixsteps(over->max_plane_step, NULL, pix_desc); over->hsub = pix_desc->log2_chroma_w; @@ -158,10 +158,10 @@ static int config_input_overlay(AVFilterLink *inlink) av_log(ctx, AV_LOG_VERBOSE, "main w:%d h:%d fmt:%s overlay x:%d y:%d w:%d h:%d fmt:%s\n", ctx->inputs[MAIN]->w, ctx->inputs[MAIN]->h, - av_pix_fmt_descriptors[ctx->inputs[MAIN]->format].name, + av_get_pix_fmt_name(ctx->inputs[MAIN]->format), over->x, over->y, ctx->inputs[OVERLAY]->w, ctx->inputs[OVERLAY]->h, - av_pix_fmt_descriptors[ctx->inputs[OVERLAY]->format].name); + av_get_pix_fmt_name(ctx->inputs[OVERLAY]->format)); if (over->x < 0 || over->y < 0 || over->x + var_values[VAR_OVERLAY_W] > var_values[VAR_MAIN_W] || diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c index 1ab6ed57f3..c14835d68c 100644 --- a/libavfilter/vf_pad.c +++ b/libavfilter/vf_pad.c @@ -144,7 +144,7 @@ static int config_input(AVFilterLink *inlink) { AVFilterContext *ctx = inlink->dst; PadContext *pad = ctx->priv; - const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[inlink->format]; + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(inlink->format); uint8_t rgba_color[4]; int ret, is_packed_rgba; double var_values[VARS_NB], res; diff --git a/libavfilter/vf_pixdesctest.c b/libavfilter/vf_pixdesctest.c index e3b4cfa6bf..09decea0f9 100644 --- a/libavfilter/vf_pixdesctest.c +++ b/libavfilter/vf_pixdesctest.c @@ -44,7 +44,7 @@ static int config_props(AVFilterLink *inlink) { PixdescTestContext *priv = inlink->dst->priv; - priv->pix_desc = &av_pix_fmt_descriptors[inlink->format]; + priv->pix_desc = av_pix_fmt_desc_get(inlink->format); if (!(priv->line = av_malloc(sizeof(*priv->line) * inlink->w))) return AVERROR(ENOMEM); diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index 5425bbd9bc..cbc1081cd9 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -155,6 +155,7 @@ static int config_props(AVFilterLink *outlink) AVFilterContext *ctx = outlink->src; AVFilterLink *inlink = outlink->src->inputs[0]; ScaleContext *scale = ctx->priv; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); int64_t w, h; double var_values[VARS_NB], res; char *expr; @@ -170,8 +171,8 @@ static int config_props(AVFilterLink *outlink) var_values[VAR_DAR] = var_values[VAR_A] = (double) inlink->w / inlink->h; var_values[VAR_SAR] = inlink->sample_aspect_ratio.num ? (double) inlink->sample_aspect_ratio.num / inlink->sample_aspect_ratio.den : 1; - var_values[VAR_HSUB] = 1<format].log2_chroma_w; - var_values[VAR_VSUB] = 1<format].log2_chroma_h; + var_values[VAR_HSUB] = 1 << desc->log2_chroma_w; + var_values[VAR_VSUB] = 1 << desc->log2_chroma_h; /* evaluate width and height */ av_expr_parse_and_eval(&res, (expr = scale->w_expr), @@ -220,12 +221,12 @@ static int config_props(AVFilterLink *outlink) /* TODO: make algorithm configurable */ av_log(ctx, AV_LOG_VERBOSE, "w:%d h:%d fmt:%s -> w:%d h:%d fmt:%s flags:0x%0x\n", - inlink ->w, inlink ->h, av_pix_fmt_descriptors[ inlink->format].name, - outlink->w, outlink->h, av_pix_fmt_descriptors[outlink->format].name, + inlink ->w, inlink ->h, av_get_pix_fmt_name(inlink->format), + outlink->w, outlink->h, av_get_pix_fmt_name(outlink->format), scale->flags); - scale->input_is_pal = av_pix_fmt_descriptors[inlink->format].flags & PIX_FMT_PAL || - av_pix_fmt_descriptors[inlink->format].flags & PIX_FMT_PSEUDOPAL; + scale->input_is_pal = desc->flags & PIX_FMT_PAL || + desc->flags & PIX_FMT_PSEUDOPAL; if (scale->sws) sws_freeContext(scale->sws); @@ -261,6 +262,7 @@ static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref) ScaleContext *scale = link->dst->priv; AVFilterLink *outlink = link->dst->outputs[0]; AVFilterBufferRef *outpicref, *for_next_filter; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format); int ret = 0; if (!scale->sws) { @@ -270,8 +272,8 @@ static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref) return ff_start_frame(outlink, outpicref); } - scale->hsub = av_pix_fmt_descriptors[link->format].log2_chroma_w; - scale->vsub = av_pix_fmt_descriptors[link->format].log2_chroma_h; + scale->hsub = desc->log2_chroma_w; + scale->vsub = desc->log2_chroma_h; outpicref = ff_get_video_buffer(outlink, AV_PERM_WRITE, outlink->w, outlink->h); if (!outpicref) diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c index c931cb3665..4b78276f97 100644 --- a/libavfilter/vf_showinfo.c +++ b/libavfilter/vf_showinfo.c @@ -46,8 +46,9 @@ static int end_frame(AVFilterLink *inlink) AVFilterContext *ctx = inlink->dst; ShowInfoContext *showinfo = ctx->priv; AVFilterBufferRef *picref = inlink->cur_buf; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); uint32_t plane_checksum[4] = {0}, checksum = 0; - int i, plane, vsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_h; + int i, plane, vsub = desc->log2_chroma_h; for (plane = 0; picref->data[plane] && plane < 4; plane++) { size_t linesize = av_image_get_linesize(picref->format, picref->video->w, plane); @@ -67,7 +68,7 @@ static int end_frame(AVFilterLink *inlink) "checksum:%u plane_checksum:[%u %u %u %u]\n", showinfo->frame, picref->pts, picref->pts * av_q2d(inlink->time_base), picref->pos, - av_pix_fmt_descriptors[picref->format].name, + desc->name, picref->video->pixel_aspect.num, picref->video->pixel_aspect.den, picref->video->w, picref->video->h, !picref->video->interlaced ? 'P' : /* Progressive */ diff --git a/libavfilter/vf_slicify.c b/libavfilter/vf_slicify.c index f7db66848a..f81ab0d0c1 100644 --- a/libavfilter/vf_slicify.c +++ b/libavfilter/vf_slicify.c @@ -54,8 +54,9 @@ static av_cold int init(AVFilterContext *ctx, const char *args) static int config_props(AVFilterLink *link) { SliceContext *slice = link->dst->priv; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format); - slice->vshift = av_pix_fmt_descriptors[link->format].log2_chroma_h; + slice->vshift = desc->log2_chroma_h; return 0; } diff --git a/libavfilter/vf_transpose.c b/libavfilter/vf_transpose.c index 2d25f69f2b..1ee645f308 100644 --- a/libavfilter/vf_transpose.c +++ b/libavfilter/vf_transpose.c @@ -98,12 +98,13 @@ static int config_props_output(AVFilterLink *outlink) AVFilterContext *ctx = outlink->src; TransContext *trans = ctx->priv; AVFilterLink *inlink = ctx->inputs[0]; - const AVPixFmtDescriptor *pixdesc = &av_pix_fmt_descriptors[outlink->format]; + const AVPixFmtDescriptor *desc_out = av_pix_fmt_desc_get(outlink->format); + const AVPixFmtDescriptor *desc_in = av_pix_fmt_desc_get(inlink->format); - trans->hsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_w; - trans->vsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_h; + trans->hsub = desc_in->log2_chroma_w; + trans->vsub = desc_in->log2_chroma_h; - av_image_fill_max_pixsteps(trans->pixsteps, NULL, pixdesc); + av_image_fill_max_pixsteps(trans->pixsteps, NULL, desc_out); outlink->w = inlink->h; outlink->h = inlink->w; diff --git a/libavfilter/vf_unsharp.c b/libavfilter/vf_unsharp.c index 21eeaefb00..7e50bb8609 100644 --- a/libavfilter/vf_unsharp.c +++ b/libavfilter/vf_unsharp.c @@ -187,9 +187,10 @@ static void init_filter_param(AVFilterContext *ctx, FilterParam *fp, const char static int config_props(AVFilterLink *link) { UnsharpContext *unsharp = link->dst->priv; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format); - unsharp->hsub = av_pix_fmt_descriptors[link->format].log2_chroma_w; - unsharp->vsub = av_pix_fmt_descriptors[link->format].log2_chroma_h; + unsharp->hsub = desc->log2_chroma_w; + unsharp->vsub = desc->log2_chroma_h; init_filter_param(link->dst, &unsharp->luma, "luma", link->w); init_filter_param(link->dst, &unsharp->chroma, "chroma", SHIFTUP(link->w, unsharp->hsub)); diff --git a/libavfilter/vf_vflip.c b/libavfilter/vf_vflip.c index 04791036e0..f12290aa03 100644 --- a/libavfilter/vf_vflip.c +++ b/libavfilter/vf_vflip.c @@ -36,8 +36,9 @@ typedef struct { static int config_input(AVFilterLink *link) { FlipContext *flip = link->dst->priv; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format); - flip->vsub = av_pix_fmt_descriptors[link->format].log2_chroma_h; + flip->vsub = desc->log2_chroma_h; return 0; } diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c index f67e3b0249..947aaac49a 100644 --- a/libavfilter/vf_yadif.c +++ b/libavfilter/vf_yadif.c @@ -187,7 +187,7 @@ static int return_frame(AVFilterContext *ctx, int is_second) } if (!yadif->csp) - yadif->csp = &av_pix_fmt_descriptors[link->format]; + yadif->csp = av_pix_fmt_desc_get(link->format); if (yadif->csp->comp[0].depth_minus1 / 8 == 1) yadif->filter_line = filter_line_c_16bit; diff --git a/libavfilter/video.c b/libavfilter/video.c index 1710126697..49091ad010 100644 --- a/libavfilter/video.c +++ b/libavfilter/video.c @@ -339,7 +339,8 @@ int ff_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) /* copy the slice if needed for permission reasons */ if (link->src_buf) { - vsub = av_pix_fmt_descriptors[link->format].log2_chroma_h; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format); + vsub = desc->log2_chroma_h; for (i = 0; i < 4; i++) { if (link->src_buf->data[i]) { diff --git a/libavfilter/vsrc_color.c b/libavfilter/vsrc_color.c index f885b717af..2bb07bf16e 100644 --- a/libavfilter/vsrc_color.c +++ b/libavfilter/vsrc_color.c @@ -118,7 +118,7 @@ static int color_config_props(AVFilterLink *inlink) ColorContext *color = ctx->priv; uint8_t rgba_color[4]; int is_packed_rgba; - const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[inlink->format]; + const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(inlink->format); color->hsub = pix_desc->log2_chroma_w; color->vsub = pix_desc->log2_chroma_h;