avfilter/vf_gblur: add support for commands

This commit is contained in:
Paul B Mahol 2019-10-06 15:23:55 +02:00
parent e37edc70bd
commit da9337c911
2 changed files with 24 additions and 0 deletions

View File

@ -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.

View File

@ -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,
};