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