From 7fb49639e6b1caf5579ce9663c1ff367663f9048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Sat, 15 Dec 2012 23:28:15 +0100 Subject: [PATCH] lavu: make sure av_pix_fmt_desc_next returns a valid pix fmt. This is required because there are some "holes" in the list for compatibility with the fork. The commit also removes the now unecessary check from cmdutils. Found-by: wm4 --- cmdutils.c | 2 -- libavutil/pixdesc.c | 7 +++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cmdutils.c b/cmdutils.c index abe5601134..fb01a947a7 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -1195,8 +1195,6 @@ int show_pix_fmts(void *optctx, const char *opt, const char *arg) while ((pix_desc = av_pix_fmt_desc_next(pix_desc))) { enum AVPixelFormat pix_fmt = av_pix_fmt_desc_get_id(pix_desc); - if(!pix_desc->name) - continue; printf("%c%c%c%c%c %-16s %d %2d\n", sws_isSupportedInput (pix_fmt) ? 'I' : '.', sws_isSupportedOutput(pix_fmt) ? 'O' : '.', diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 1f2aa58a42..362edfa07f 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -1757,8 +1757,11 @@ const AVPixFmtDescriptor *av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev) { if (!prev) return &av_pix_fmt_descriptors[0]; - if (prev - av_pix_fmt_descriptors < FF_ARRAY_ELEMS(av_pix_fmt_descriptors) - 1) - return prev + 1; + while (prev - av_pix_fmt_descriptors < FF_ARRAY_ELEMS(av_pix_fmt_descriptors) - 1) { + prev++; + if (prev->name) + return prev; + } return NULL; }