Commit 862f33c1 authored by Anton Khirnov's avatar Anton Khirnov

vf_scale: use the pixfmt descriptor API

Avoid using AV_PIX_FMT_NB, since that hardcodes the number of pixel
formats into lavfi and will break when a shared lavu is updated, adding
new pixel formats.
parent 45fc73ed
...@@ -120,25 +120,31 @@ static int query_formats(AVFilterContext *ctx) ...@@ -120,25 +120,31 @@ static int query_formats(AVFilterContext *ctx)
int ret; int ret;
if (ctx->inputs[0]) { if (ctx->inputs[0]) {
const AVPixFmtDescriptor *desc = NULL;
formats = NULL; formats = NULL;
for (pix_fmt = 0; pix_fmt < AV_PIX_FMT_NB; pix_fmt++) while ((desc = av_pix_fmt_desc_next(desc))) {
pix_fmt = av_pix_fmt_desc_get_id(desc);
if ((sws_isSupportedInput(pix_fmt) || if ((sws_isSupportedInput(pix_fmt) ||
sws_isSupportedEndiannessConversion(pix_fmt)) sws_isSupportedEndiannessConversion(pix_fmt))
&& (ret = ff_add_format(&formats, pix_fmt)) < 0) { && (ret = ff_add_format(&formats, pix_fmt)) < 0) {
ff_formats_unref(&formats); ff_formats_unref(&formats);
return ret; return ret;
} }
}
ff_formats_ref(formats, &ctx->inputs[0]->out_formats); ff_formats_ref(formats, &ctx->inputs[0]->out_formats);
} }
if (ctx->outputs[0]) { if (ctx->outputs[0]) {
const AVPixFmtDescriptor *desc = NULL;
formats = NULL; formats = NULL;
for (pix_fmt = 0; pix_fmt < AV_PIX_FMT_NB; pix_fmt++) while ((desc = av_pix_fmt_desc_next(desc))) {
pix_fmt = av_pix_fmt_desc_get_id(desc);
if ((sws_isSupportedOutput(pix_fmt) || if ((sws_isSupportedOutput(pix_fmt) ||
sws_isSupportedEndiannessConversion(pix_fmt)) sws_isSupportedEndiannessConversion(pix_fmt))
&& (ret = ff_add_format(&formats, pix_fmt)) < 0) { && (ret = ff_add_format(&formats, pix_fmt)) < 0) {
ff_formats_unref(&formats); ff_formats_unref(&formats);
return ret; return ret;
} }
}
ff_formats_ref(formats, &ctx->outputs[0]->in_formats); ff_formats_ref(formats, &ctx->outputs[0]->in_formats);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment