You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
avfilter/af_asoftclip: add erf soft clip type
This commit is contained in:
@@ -2323,6 +2323,7 @@ It accepts the following values:
|
|||||||
@item alg
|
@item alg
|
||||||
@item quintic
|
@item quintic
|
||||||
@item sin
|
@item sin
|
||||||
|
@item erf
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@item param
|
@item param
|
||||||
|
@@ -32,6 +32,7 @@ enum ASoftClipTypes {
|
|||||||
ASC_ALG,
|
ASC_ALG,
|
||||||
ASC_QUINTIC,
|
ASC_QUINTIC,
|
||||||
ASC_SIN,
|
ASC_SIN,
|
||||||
|
ASC_ERF,
|
||||||
NB_TYPES,
|
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" },
|
{ "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" },
|
{ "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" },
|
{ "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 },
|
{ "param", "set softclip parameter", OFFSET(param), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.01, 3, A },
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
@@ -148,6 +150,11 @@ static void filter_flt(ASoftClipContext *s,
|
|||||||
dst[n] = sinf(src[n]);
|
dst[n] = sinf(src[n]);
|
||||||
}
|
}
|
||||||
break;
|
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]);
|
dst[n] = sin(src[n]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ASC_ERF:
|
||||||
|
for (int n = 0; n < nb_samples; n++) {
|
||||||
|
dst[n] = erf(src[n]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user