mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avfilter/af_anlmdn: add support for commands
This commit is contained in:
parent
0b7bfa8ad7
commit
97ddc5d1f7
@ -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,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user