From da9337c911c9cd68b1580e569138b9c79472db1f Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Sun, 6 Oct 2019 15:23:55 +0200 Subject: [PATCH] avfilter/vf_gblur: add support for commands --- doc/filters.texi | 7 +++++++ libavfilter/vf_gblur.c | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/doc/filters.texi b/doc/filters.texi index 468227ce509..59bac581662 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -10873,6 +10873,13 @@ Set vertical sigma, if negative it will be same as @code{sigma}. Default is @code{-1}. @end table +@subsection Commands +This filter supports same commands as options. +The command accepts the same syntax of the corresponding option. + +If the specified expression is not valid, it is kept at its current +value. + @section geq Apply generic equation to each pixel. diff --git a/libavfilter/vf_gblur.c b/libavfilter/vf_gblur.c index e71b33da800..6ef261478fa 100644 --- a/libavfilter/vf_gblur.c +++ b/libavfilter/vf_gblur.c @@ -344,6 +344,22 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) return ff_filter_frame(outlink, out); } +static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, + char *res, int res_len, int flags) +{ + GBlurContext *s = ctx->priv; + int ret = 0; + + if ( !strcmp(cmd, "sigma") || !strcmp(cmd, "sigmaV") + || !strcmp(cmd, "steps") || !strcmp(cmd, "planes")) { + av_opt_set(s, cmd, args, 0); + } else { + ret = AVERROR(ENOSYS); + } + + return ret; +} + static av_cold void uninit(AVFilterContext *ctx) { GBlurContext *s = ctx->priv; @@ -379,4 +395,5 @@ AVFilter ff_vf_gblur = { .inputs = gblur_inputs, .outputs = gblur_outputs, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .process_command = process_command, }; -- 2.39.5