[FFmpeg-devel] [PATCH 04/14] avfilter/af_anlms: switch to ff_filter_process_command()
Limin Wang
lance.lmwang at gmail.com
Thu Oct 10 16:27:09 EEST 2019
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?
>
> >
> >> };
> >> --
> >> 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".
More information about the ffmpeg-devel
mailing list