Browse Source

avfilter/af_anlms: add support for commands

tags/n4.3
Paul B Mahol 5 years ago
parent
commit
6023b9fbfe
2 changed files with 22 additions and 1 deletions
  1. +5
    -1
      doc/filters.texi
  2. +17
    -0
      libavfilter/af_anlms.c

+ 5
- 1
doc/filters.texi View File

@@ -1870,12 +1870,16 @@ Default value is @var{o}.
@itemize @itemize
@item @item
One of many usages of this filter is noise reduction, input audio is filtered One of many usages of this filter is noise reduction, input audio is filtered
with same samples that are delayed by fixed ammount, one such example for stereo audio is:
with same samples that are delayed by fixed amount, one such example for stereo audio is:
@example @example
asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
@end example @end example
@end itemize @end itemize


@subsection Commands

This filter supports the same commands as options, excluding option @code{order}.

@section anull @section anull


Pass the audio source unchanged to the output. Pass the audio source unchanged to the output.


+ 17
- 0
libavfilter/af_anlms.c View File

@@ -281,6 +281,22 @@ static av_cold int init(AVFilterContext *ctx)
return 0; return 0;
} }


static int process_command(AVFilterContext *ctx, const char *cmd, const char *args,
char *res, int res_len, int flags)
{
AudioNLMSContext *s = ctx->priv;
int ret;

if ( !strcmp(cmd, "mu") || !strcmp(cmd, "eps")
|| !strcmp(cmd, "leakage") || !strcmp(cmd, "out_mode")) {
ret = av_opt_set(s, cmd, args, 0);
} else {
ret = AVERROR(ENOSYS);
}

return ret;
}

static av_cold void uninit(AVFilterContext *ctx) static av_cold void uninit(AVFilterContext *ctx)
{ {
AudioNLMSContext *s = ctx->priv; AudioNLMSContext *s = ctx->priv;
@@ -325,4 +341,5 @@ AVFilter ff_af_anlms = {
.inputs = inputs, .inputs = inputs,
.outputs = outputs, .outputs = outputs,
.flags = AVFILTER_FLAG_SLICE_THREADS, .flags = AVFILTER_FLAG_SLICE_THREADS,
.process_command = process_command,
}; };

Loading…
Cancel
Save