From b7f1010c8fce09096057528f7cd29589ea1ae7df Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 6 Oct 2012 13:29:37 +0200 Subject: [PATCH] tools: do not use av_pix_fmt_descriptors directly. --- avprobe.c | 6 +++--- cmdutils.c | 16 +++++++++++----- tools/graph2dot.c | 4 ++-- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/avprobe.c b/avprobe.c index 16a5d29ebb..3a3ae0fa7d 100644 --- a/avprobe.c +++ b/avprobe.c @@ -584,6 +584,7 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx) const char *profile; char val_str[128]; AVRational display_aspect_ratio; + const AVPixFmtDescriptor *desc; probe_object_header("stream"); @@ -629,9 +630,8 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx) rational_string(val_str, sizeof(val_str), ":", &display_aspect_ratio)); } - probe_str("pix_fmt", - dec_ctx->pix_fmt != AV_PIX_FMT_NONE ? - av_pix_fmt_descriptors[dec_ctx->pix_fmt].name : "unknown"); + desc = av_pix_fmt_desc_get(dec_ctx->pix_fmt); + probe_str("pix_fmt", desc ? desc->name : "unknown"); probe_int("level", dec_ctx->level); break; diff --git a/cmdutils.c b/cmdutils.c index ac971df20a..34c52ca136 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -866,7 +866,7 @@ int show_filters(void *optctx, const char *opt, const char *arg) int show_pix_fmts(void *optctx, const char *opt, const char *arg) { - enum AVPixelFormat pix_fmt; + const AVPixFmtDescriptor *pix_desc = NULL; printf("Pixel formats:\n" "I.... = Supported Input format for conversion\n" @@ -882,8 +882,8 @@ int show_pix_fmts(void *optctx, const char *opt, const char *arg) # define sws_isSupportedOutput(x) 0 #endif - for (pix_fmt = 0; pix_fmt < AV_PIX_FMT_NB; pix_fmt++) { - const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[pix_fmt]; + while ((pix_desc = av_pix_fmt_desc_next(pix_desc))) { + enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(pix_desc); printf("%c%c%c%c%c %-16s %d %2d\n", sws_isSupportedInput (pix_fmt) ? 'I' : '.', sws_isSupportedOutput(pix_fmt) ? 'O' : '.', @@ -1282,13 +1282,19 @@ void *grow_array(void *array, int elem_size, int *size, int new_size) static int alloc_buffer(FrameBuffer **pool, AVCodecContext *s, FrameBuffer **pbuf) { - FrameBuffer *buf = av_mallocz(sizeof(*buf)); + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(s->pix_fmt); + FrameBuffer *buf; int i, ret; - const int pixel_size = av_pix_fmt_descriptors[s->pix_fmt].comp[0].step_minus1+1; + int pixel_size; int h_chroma_shift, v_chroma_shift; int edge = 32; // XXX should be avcodec_get_edge_width(), but that fails on svq1 int w = s->width, h = s->height; + if (!desc) + return AVERROR(EINVAL); + pixel_size = desc->comp[0].step_minus1 + 1; + + buf = av_mallocz(sizeof(*buf)); if (!buf) return AVERROR(ENOMEM); diff --git a/tools/graph2dot.c b/tools/graph2dot.c index e7f487d146..c0142ccd31 100644 --- a/tools/graph2dot.c +++ b/tools/graph2dot.c @@ -80,10 +80,10 @@ static void print_digraph(FILE *outfile, AVFilterGraph *graph) fprintf(outfile, "\"%s\" -> \"%s\"", filter_ctx_label, dst_filter_ctx_label); if (link->type == AVMEDIA_TYPE_VIDEO) { + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format); fprintf(outfile, " [ label= \"fmt:%s w:%d h:%d tb:%d/%d\" ]", - av_pix_fmt_descriptors[link->format].name, - link->w, link->h, link->time_base.num, + desc->name, link->w, link->h, link->time_base.num, link->time_base.den); } else if (link->type == AVMEDIA_TYPE_AUDIO) { char buf[255];