From 7a6d88ee6269666e5676a37a75bde231a6508e28 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Wed, 10 Oct 2018 19:55:30 +0200 Subject: avfilter/af_afir: remove again option, merge it with gtype --- libavfilter/af_afir.c | 67 ++++++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 33 deletions(-) (limited to 'libavfilter/af_afir.c') diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c index b2d158c17e..244da3ab4c 100644 --- a/libavfilter/af_afir.c +++ b/libavfilter/af_afir.c @@ -335,38 +335,39 @@ static int convert_coeffs(AVFilterContext *ctx) s->gain = 1; - if (s->again) { - switch (s->gtype) { - case 0: - for (ch = 0; ch < ctx->inputs[1]->channels; ch++) { - float *time = (float *)s->in[1]->extended_data[!s->one2many * ch]; - - for (i = 0; i < s->nb_taps; i++) - power += FFABS(time[i]); - } - s->gain = ctx->inputs[1]->channels / power; - break; - case 1: - for (ch = 0; ch < ctx->inputs[1]->channels; ch++) { - float *time = (float *)s->in[1]->extended_data[!s->one2many * ch]; - - for (i = 0; i < s->nb_taps; i++) - power += time[i]; - } - s->gain = ctx->inputs[1]->channels / power; - break; - case 2: - for (ch = 0; ch < ctx->inputs[1]->channels; ch++) { - float *time = (float *)s->in[1]->extended_data[!s->one2many * ch]; - - for (i = 0; i < s->nb_taps; i++) - power += time[i] * time[i]; - } - s->gain = sqrtf(ch / power); - break; - default: - return AVERROR_BUG; + switch (s->gtype) { + case -1: + /* nothinkg to do */ + break; + case 0: + for (ch = 0; ch < ctx->inputs[1]->channels; ch++) { + float *time = (float *)s->in[1]->extended_data[!s->one2many * ch]; + + for (i = 0; i < s->nb_taps; i++) + power += FFABS(time[i]); + } + s->gain = ctx->inputs[1]->channels / power; + break; + case 1: + for (ch = 0; ch < ctx->inputs[1]->channels; ch++) { + float *time = (float *)s->in[1]->extended_data[!s->one2many * ch]; + + for (i = 0; i < s->nb_taps; i++) + power += time[i]; } + s->gain = ctx->inputs[1]->channels / power; + break; + case 2: + for (ch = 0; ch < ctx->inputs[1]->channels; ch++) { + float *time = (float *)s->in[1]->extended_data[!s->one2many * ch]; + + for (i = 0; i < s->nb_taps; i++) + power += time[i] * time[i]; + } + s->gain = sqrtf(ch / power); + break; + default: + return AVERROR_BUG; } s->gain = FFMIN(s->gain * s->ir_gain, 1.f); @@ -738,8 +739,8 @@ static const AVOption afir_options[] = { { "dry", "set dry gain", OFFSET(dry_gain), AV_OPT_TYPE_FLOAT, {.dbl=1}, 0, 10, AF }, { "wet", "set wet gain", OFFSET(wet_gain), AV_OPT_TYPE_FLOAT, {.dbl=1}, 0, 10, AF }, { "length", "set IR length", OFFSET(length), AV_OPT_TYPE_FLOAT, {.dbl=1}, 0, 1, AF }, - { "again", "enable auto gain", OFFSET(again), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1, AF }, - { "gtype", "set auto gain type",OFFSET(gtype), AV_OPT_TYPE_INT, {.i64=0}, 0, 2, AF, "gtype" }, + { "gtype", "set IR auto gain type",OFFSET(gtype), AV_OPT_TYPE_INT, {.i64=0}, -1, 2, AF, "gtype" }, + { "none", "without auto gain", 0, AV_OPT_TYPE_CONST, {.i64=-1}, 0, 0, AF, "gtype" }, { "peak", "peak gain", 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, AF, "gtype" }, { "dc", "DC gain", 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, AF, "gtype" }, { "gn", "gain to noise", 0, AV_OPT_TYPE_CONST, {.i64=2}, 0, 0, AF, "gtype" }, -- cgit v1.2.3