From ee686236cd1dcceca2ecdfe64e509a7ef977e8f0 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Tue, 3 Nov 2020 12:05:24 +0100 Subject: avfilter/af_asoftclip: add erf soft clip type --- libavfilter/af_asoftclip.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libavfilter') diff --git a/libavfilter/af_asoftclip.c b/libavfilter/af_asoftclip.c index e9e3666ef6..c49ba5a49f 100644 --- a/libavfilter/af_asoftclip.c +++ b/libavfilter/af_asoftclip.c @@ -32,6 +32,7 @@ enum ASoftClipTypes { ASC_ALG, ASC_QUINTIC, ASC_SIN, + ASC_ERF, NB_TYPES, }; @@ -57,6 +58,7 @@ static const AVOption asoftclip_options[] = { { "alg", NULL, 0, AV_OPT_TYPE_CONST, {.i64=ASC_ALG}, 0, 0, A, "types" }, { "quintic", NULL, 0, AV_OPT_TYPE_CONST, {.i64=ASC_QUINTIC},0, 0, A, "types" }, { "sin", NULL, 0, AV_OPT_TYPE_CONST, {.i64=ASC_SIN}, 0, 0, A, "types" }, + { "erf", NULL, 0, AV_OPT_TYPE_CONST, {.i64=ASC_ERF}, 0, 0, A, "types" }, { "param", "set softclip parameter", OFFSET(param), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.01, 3, A }, { NULL } }; @@ -148,6 +150,11 @@ static void filter_flt(ASoftClipContext *s, dst[n] = sinf(src[n]); } break; + case ASC_ERF: + for (int n = 0; n < nb_samples; n++) { + dst[n] = erff(src[n]); + } + break; } } } @@ -205,6 +212,11 @@ static void filter_dbl(ASoftClipContext *s, dst[n] = sin(src[n]); } break; + case ASC_ERF: + for (int n = 0; n < nb_samples; n++) { + dst[n] = erf(src[n]); + } + break; } } } -- cgit v1.2.3