summaryrefslogtreecommitdiff
path: root/libavfilter/af_asoftclip.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2020-11-03 12:05:24 +0100
committerPaul B Mahol <onemda@gmail.com>2020-11-03 12:30:19 +0100
commitee686236cd1dcceca2ecdfe64e509a7ef977e8f0 (patch)
tree08c41ff29330302bccf2317dc722e66b63d03ec8 /libavfilter/af_asoftclip.c
parent67d4ab50ec23d59f9ad6af1c34ea5727f3fcefe8 (diff)
avfilter/af_asoftclip: add erf soft clip type
Diffstat (limited to 'libavfilter/af_asoftclip.c')
-rw-r--r--libavfilter/af_asoftclip.c12
1 files changed, 12 insertions, 0 deletions
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;
}
}
}