[FFmpeg-devel] [PATCH 04/14] avfilter/af_anlms: switch to ff_filter_process_command()

Paul B Mahol onemda at gmail.com
Thu Oct 10 16:40:41 EEST 2019


On 10/10/19, Limin Wang <lance.lmwang at gmail.com> wrote:
> On Thu, Oct 10, 2019 at 03:10:28PM +0200, Paul B Mahol wrote:
>> On 10/10/19, Limin Wang <lance.lmwang at gmail.com> wrote:
>> > On Thu, Oct 10, 2019 at 01:38:41PM +0200, Paul B Mahol wrote:
>> >> Signed-off-by: Paul B Mahol <onemda at gmail.com>
>> >> ---
>> >>  libavfilter/af_anlms.c | 35 ++++++++++-------------------------
>> >>  1 file changed, 10 insertions(+), 25 deletions(-)
>> >>
>> >> diff --git a/libavfilter/af_anlms.c b/libavfilter/af_anlms.c
>> >> index 350bedaf7a..55e6946b68 100644
>> >> --- a/libavfilter/af_anlms.c
>> >> +++ b/libavfilter/af_anlms.c
>> >> @@ -60,17 +60,18 @@ typedef struct AudioNLMSContext {
>> >>
>> >>  #define OFFSET(x) offsetof(AudioNLMSContext, x)
>> >>  #define A AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
>> >> +#define AT
>> >> AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_RUNTIME_PARAM
>> >>
>> >>  static const AVOption anlms_options[] = {
>> >>      { "order",   "set the filter order",   OFFSET(order),
>> >> AV_OPT_TYPE_INT,   {.i64=256},  1, INT16_MAX, A },
>> >> -    { "mu",      "set the filter mu",      OFFSET(mu),
>> >> AV_OPT_TYPE_FLOAT, {.dbl=0.75}, 0, 2, A },
>> >> -    { "eps",     "set the filter eps",     OFFSET(eps),
>> >> AV_OPT_TYPE_FLOAT, {.dbl=1},    0, 1, A },
>> >> -    { "leakage", "set the filter leakage", OFFSET(leakage),
>> >> AV_OPT_TYPE_FLOAT, {.dbl=0},    0, 1, A },
>> >> -    { "out_mode", "set output mode",       OFFSET(output_mode),
>> >> AV_OPT_TYPE_INT, {.i64=OUT_MODE}, 0, NB_OMODES-1, A, "mode" },
>> >> -    {  "i", "input",                 0,          AV_OPT_TYPE_CONST,
>> >> {.i64=IN_MODE},      0, 0, A, "mode" },
>> >> -    {  "d", "desired",               0,          AV_OPT_TYPE_CONST,
>> >> {.i64=DESIRED_MODE}, 0, 0, A, "mode" },
>> >> -    {  "o", "output",                0,          AV_OPT_TYPE_CONST,
>> >> {.i64=OUT_MODE},     0, 0, A, "mode" },
>> >> -    {  "n", "noise",                 0,          AV_OPT_TYPE_CONST,
>> >> {.i64=NOISE_MODE},   0, 0, A, "mode" },
>> >> +    { "mu",      "set the filter mu",      OFFSET(mu),
>> >> AV_OPT_TYPE_FLOAT, {.dbl=0.75}, 0, 2, AT },
>> >> +    { "eps",     "set the filter eps",     OFFSET(eps),
>> >> AV_OPT_TYPE_FLOAT, {.dbl=1},    0, 1, AT },
>> >> +    { "leakage", "set the filter leakage", OFFSET(leakage),
>> >> AV_OPT_TYPE_FLOAT, {.dbl=0},    0, 1, AT },
>> >> +    { "out_mode", "set output mode",       OFFSET(output_mode),
>> >> AV_OPT_TYPE_INT, {.i64=OUT_MODE}, 0, NB_OMODES-1, AT, "mode" },
>> >> +    {  "i", "input",                 0,          AV_OPT_TYPE_CONST,
>> >> {.i64=IN_MODE},      0, 0, AT, "mode" },
>> >> +    {  "d", "desired",               0,          AV_OPT_TYPE_CONST,
>> >> {.i64=DESIRED_MODE}, 0, 0, AT, "mode" },
>> >> +    {  "o", "output",                0,          AV_OPT_TYPE_CONST,
>> >> {.i64=OUT_MODE},     0, 0, AT, "mode" },
>> >> +    {  "n", "noise",                 0,          AV_OPT_TYPE_CONST,
>> >> {.i64=NOISE_MODE},   0, 0, AT, "mode" },
>> >>      { NULL }
>> >>  };
>> >>
>> >> @@ -281,22 +282,6 @@ static av_cold int init(AVFilterContext *ctx)
>> >>      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)
>> >>  {
>> >>      AudioNLMSContext *s = ctx->priv;
>> >> @@ -341,5 +326,5 @@ AVFilter ff_af_anlms = {
>> >>      .inputs         = inputs,
>> >>      .outputs        = outputs,
>> >>      .flags          = AVFILTER_FLAG_SLICE_THREADS,
>> >> -    .process_command = process_command,
>> >> +    .process_command = ff_filter_process_command,
>> > Can we delete the line directly, if default is
>> > ff_filter_process_command,
>> > then we don't need to assign .process_command and make it default if the
>> > runtime flags is set?
>>
>> No, because this is used to show which filters support commands.
>> With your approach that would be lost, or some other thing would need
>> to mark it.
>
> Can we add a new flags like AVFILTER_FLAG_SLICE_THREADS?

What for? I prefer it this way.

>
>>
>> >
>> >>  };
>> >> --
>> >> 2.17.1
>> >>
>> >> _______________________________________________
>> >> ffmpeg-devel mailing list
>> >> ffmpeg-devel at ffmpeg.org
>> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> >>
>> >> To unsubscribe, visit link above, or email
>> >> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>> > _______________________________________________
>> > ffmpeg-devel mailing list
>> > ffmpeg-devel at ffmpeg.org
>> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> >
>> > To unsubscribe, visit link above, or email
>> > ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list