diff options
author | Paul B Mahol <onemda@gmail.com> | 2020-04-30 11:58:04 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2020-04-30 12:18:36 +0200 |
commit | 35d6001815e1282c5babf71c71f1fd04b59e5440 (patch) | |
tree | ca81c28d2c426c3b4da4a59faafc192c44193bbf /libavfilter/af_crossfeed.c | |
parent | 0ec61fcff71d212b616660a6e93d856ef1849466 (diff) | |
download | ffmpeg-35d6001815e1282c5babf71c71f1fd04b59e5440.tar.gz |
avfilter/af_crossfeed: make slope configurable
Diffstat (limited to 'libavfilter/af_crossfeed.c')
-rw-r--r-- | libavfilter/af_crossfeed.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libavfilter/af_crossfeed.c b/libavfilter/af_crossfeed.c index f1bbb357ba..cc2db70e62 100644 --- a/libavfilter/af_crossfeed.c +++ b/libavfilter/af_crossfeed.c @@ -28,6 +28,7 @@ typedef struct CrossfeedContext { double range; double strength; + double slope; double level_in; double level_out; @@ -62,7 +63,7 @@ static int config_input(AVFilterLink *inlink) double w0 = 2 * M_PI * (1. - s->range) * 2100 / inlink->sample_rate; double alpha; - alpha = sin(w0) / 2 * sqrt((A + 1 / A) * (1 / 0.5 - 1) + 2); + alpha = sin(w0) / 2 * sqrt((A + 1 / A) * (1 / s->slope - 1) + 2); s->a0 = (A + 1) + (A - 1) * cos(w0) + 2 * sqrt(A) * alpha; s->a1 = -2 * ((A - 1) + (A + 1) * cos(w0)); @@ -139,6 +140,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) static const AVOption crossfeed_options[] = { { "strength", "set crossfeed strength", OFFSET(strength), AV_OPT_TYPE_DOUBLE, {.dbl=.2}, 0, 1, FLAGS }, { "range", "set soundstage wideness", OFFSET(range), AV_OPT_TYPE_DOUBLE, {.dbl=.5}, 0, 1, FLAGS }, + { "slope", "set curve slope", OFFSET(slope), AV_OPT_TYPE_DOUBLE, {.dbl=.5}, .01, 1, FLAGS }, { "level_in", "set level in", OFFSET(level_in), AV_OPT_TYPE_DOUBLE, {.dbl=.9}, 0, 1, FLAGS }, { "level_out", "set level out", OFFSET(level_out), AV_OPT_TYPE_DOUBLE, {.dbl=1.}, 0, 1, FLAGS }, { NULL } |