[FFmpeg-devel,07/13] avfilter/af_anlmdn: switch to ff_filter_process_command()

Submitted by Paul B Mahol on Oct. 9, 2019, 9:56 a.m.

Details

Message ID 20191009095651.2928-7-onemda@gmail.com
State New
Headers show

Commit Message

Paul B Mahol Oct. 9, 2019, 9:56 a.m.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
---
 libavfilter/af_anlmdn.c | 36 +++++++-----------------------------
 1 file changed, 7 insertions(+), 29 deletions(-)

Patch hide | download patch | download mbox

diff --git a/libavfilter/af_anlmdn.c b/libavfilter/af_anlmdn.c
index b5bc94b4eb..8125005114 100644
--- a/libavfilter/af_anlmdn.c
+++ b/libavfilter/af_anlmdn.c
@@ -73,15 +73,16 @@  enum OutModes {
 
 #define OFFSET(x) offsetof(AudioNLMeansContext, x)
 #define AF AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
+#define AFC AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_COMMAND_PARAM
 
 static const AVOption anlmdn_options[] = {
-    { "s", "set denoising strength", OFFSET(a),  AV_OPT_TYPE_FLOAT,    {.dbl=0.00001},0.00001, 10, AF },
+    { "s", "set denoising strength", OFFSET(a),  AV_OPT_TYPE_FLOAT,    {.dbl=0.00001},0.00001, 10, AFC },
     { "p", "set patch duration",     OFFSET(pd), AV_OPT_TYPE_DURATION, {.i64=2000}, 1000, 100000, AF },
     { "r", "set research duration",  OFFSET(rd), AV_OPT_TYPE_DURATION, {.i64=6000}, 2000, 300000, AF },
-    { "o", "set output mode",        OFFSET(om), AV_OPT_TYPE_INT,      {.i64=OUT_MODE},  0, NB_MODES-1, AF, "mode" },
-    {  "i", "input",                 0,          AV_OPT_TYPE_CONST,    {.i64=IN_MODE},   0,  0, AF, "mode" },
-    {  "o", "output",                0,          AV_OPT_TYPE_CONST,    {.i64=OUT_MODE},  0,  0, AF, "mode" },
-    {  "n", "noise",                 0,          AV_OPT_TYPE_CONST,    {.i64=NOISE_MODE},0,  0, AF, "mode" },
+    { "o", "set output mode",        OFFSET(om), AV_OPT_TYPE_INT,      {.i64=OUT_MODE},  0, NB_MODES-1, AFC, "mode" },
+    {  "i", "input",                 0,          AV_OPT_TYPE_CONST,    {.i64=IN_MODE},   0,  0, AFC, "mode" },
+    {  "o", "output",                0,          AV_OPT_TYPE_CONST,    {.i64=OUT_MODE},  0,  0, AFC, "mode" },
+    {  "n", "noise",                 0,          AV_OPT_TYPE_CONST,    {.i64=NOISE_MODE},0,  0, AFC, "mode" },
     { "m", "set smooth factor",      OFFSET(m),  AV_OPT_TYPE_FLOAT,    {.dbl=11.},       1, 15, AF },
     { NULL }
 };
@@ -339,29 +340,6 @@  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",
@@ -390,7 +368,7 @@  AVFilter ff_af_anlmdn = {
     .uninit        = uninit,
     .inputs        = inputs,
     .outputs       = outputs,
-    .process_command = process_command,
+    .process_command = ff_filter_process_command,
     .flags         = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
                      AVFILTER_FLAG_SLICE_THREADS,
 };