From 6e05a11e8968d1781cc60666aa130520259cc1b1 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Mon, 16 Apr 2018 19:06:09 +0200 Subject: avfilter/af_afir: make max IR length configurable Also increase max allowed dry/wet value. Signed-off-by: Paul B Mahol --- libavfilter/af_afir.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'libavfilter/af_afir.c') diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c index 6687242631..9318484cd0 100644 --- a/libavfilter/af_afir.c +++ b/libavfilter/af_afir.c @@ -290,7 +290,7 @@ static int read_ir(AVFilterLink *link, AVFrame *frame) return ret; nb_taps = av_audio_fifo_size(s->fifo[1]); - max_nb_taps = MAX_IR_DURATION * ctx->outputs[0]->sample_rate; + max_nb_taps = s->max_ir_len * ctx->outputs[0]->sample_rate; if (nb_taps > max_nb_taps) { av_log(ctx, AV_LOG_ERROR, "Too big number of coefficients: %d > %d.\n", nb_taps, max_nb_taps); return AVERROR(EINVAL); @@ -533,10 +533,11 @@ static const AVFilterPad afir_outputs[] = { #define OFFSET(x) offsetof(AudioFIRContext, x) static const AVOption afir_options[] = { - { "dry", "set dry gain", OFFSET(dry_gain), AV_OPT_TYPE_FLOAT, {.dbl=1}, 0, 1, AF }, - { "wet", "set wet gain", OFFSET(wet_gain), AV_OPT_TYPE_FLOAT, {.dbl=1}, 0, 1, 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 }, + { "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 }, + { "maxir", "set max ir length", OFFSET(max_ir_len), AV_OPT_TYPE_FLOAT, {.dbl=30}, 0.1, 60, AF }, { NULL } }; -- cgit v1.2.3