[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:10:28 EEST 2019


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.

>
>>  };
>> --
>> 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".


More information about the ffmpeg-devel mailing list