X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Fvf_il.c;h=9b21f2e7a71655e50c3d227fd54cd7798ef46b75;hb=a04ad248a05e7b613abe09b3bb067f555108d794;hp=ae0cc1938a375cc4e66195b7dd6e6676f4250075;hpb=94346ab593f3fc0822f11d3e3f378f9944ad2d40;p=ffmpeg diff --git a/libavfilter/vf_il.c b/libavfilter/vf_il.c index ae0cc1938a3..9b21f2e7a71 100644 --- a/libavfilter/vf_il.c +++ b/libavfilter/vf_il.c @@ -46,7 +46,7 @@ typedef struct IlContext { } IlContext; #define OFFSET(x) offsetof(IlContext, x) -#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM +#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_RUNTIME_PARAM static const AVOption il_options[] = { {"luma_mode", "select luma mode", OFFSET(luma_mode), AV_OPT_TYPE_INT, {.i64=MODE_NONE}, MODE_NONE, MODE_DEINTERLEAVE, FLAGS, "luma_mode"}, @@ -84,16 +84,13 @@ AVFILTER_DEFINE_CLASS(il); static int query_formats(AVFilterContext *ctx) { AVFilterFormats *formats = NULL; - int fmt, ret; - - for (fmt = 0; av_pix_fmt_desc_get(fmt); fmt++) { - const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(fmt); - if (!(desc->flags & AV_PIX_FMT_FLAG_PAL) && - !(desc->flags & AV_PIX_FMT_FLAG_HWACCEL) && - (ret = ff_add_format(&formats, fmt)) < 0) - return ret; - } + int ret; + ret = ff_formats_pixdesc_filter(&formats, 0, + AV_PIX_FMT_FLAG_PAL | + AV_PIX_FMT_FLAG_HWACCEL); + if (ret < 0) + return ret; return ff_set_common_formats(ctx, formats); } @@ -201,7 +198,7 @@ static const AVFilterPad outputs[] = { { NULL } }; -AVFilter ff_vf_il = { +const AVFilter ff_vf_il = { .name = "il", .description = NULL_IF_CONFIG_SMALL("Deinterleave or interleave fields."), .priv_size = sizeof(IlContext), @@ -210,4 +207,5 @@ AVFilter ff_vf_il = { .outputs = outputs, .priv_class = &il_class, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .process_command = ff_filter_process_command, };