mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-02-04 14:30:55 +08:00
avfilter/af_anlmdn: add support for commands
This commit is contained in:
@@ -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,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user