Commit 97ddc5d1 authored by Paul B Mahol's avatar Paul B Mahol

avfilter/af_anlmdn: add support for commands

parent 0b7bfa8a
......@@ -1806,6 +1806,19 @@ Default value is @var{o}.
Set smooth factor. Default value is @var{11}. Allowed range is from @var{1} to @var{15}.
@end table
@subsection Commands
This filter supports the following commands:
@table @option
@item s
Change denoise strength. Argument is single float number.
Syntax for the command is : "@var{s}"
@item o
Change output mode.
Syntax for the command is : "i", "o" or "n" string.
@end table
@section anull
Pass the audio source unchanged to the output.
......
......@@ -22,6 +22,7 @@
#include "libavutil/avassert.h"
#include "libavutil/audio_fifo.h"
#include "libavutil/avstring.h"
#include "libavutil/opt.h"
#include "avfilter.h"
#include "audio.h"
......@@ -338,6 +339,29 @@ static av_cold void uninit(AVFilterContext *ctx)
av_frame_free(&s->cache);
}
static int process_command(AVFilterContext *ctx, const char *cmd, const char *args,
char *res, int res_len, int flags)
{
AudioNLMeansContext *s = ctx->priv;
if (!strcmp(cmd, "s")) {
float a;
if (av_sscanf(args, "%f", &a) == 1)
s->a = av_clipf(a, 0.00001, 10);
} else if (!strcmp(cmd, "o")) {
if (!strcmp(args, "i")) {
s->om = IN_MODE;
} else if (!strcmp(args, "o")) {
s->om = OUT_MODE;
} else if (!strcmp(args, "n")) {
s->om = NOISE_MODE;
}
}
return 0;
}
static const AVFilterPad inputs[] = {
{
.name = "default",
......@@ -366,6 +390,7 @@ AVFilter ff_af_anlmdn = {
.uninit = uninit,
.inputs = inputs,
.outputs = outputs,
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS,
};
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