summaryrefslogtreecommitdiff
path: root/libavfilter/af_alimiter.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2021-10-18 22:44:40 +0200
committerPaul B Mahol <onemda@gmail.com>2021-10-18 22:46:36 +0200
commitf7ddf4fc57cbbe5c40e3a28e23e9d8a6d66d3cd0 (patch)
tree5017ad555870bc7dae1b63ee5938ecccb479b4fc /libavfilter/af_alimiter.c
parent49597300e87c5c4b2ca56c5b93930d92f64cdf5b (diff)
downloadffmpeg-f7ddf4fc57cbbe5c40e3a28e23e9d8a6d66d3cd0.tar.gz
avfilter/af_alimiter: add timeline and commands support
Diffstat (limited to 'libavfilter/af_alimiter.c')
-rw-r--r--libavfilter/af_alimiter.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/libavfilter/af_alimiter.c b/libavfilter/af_alimiter.c
index eb77181607..211941a511 100644
--- a/libavfilter/af_alimiter.c
+++ b/libavfilter/af_alimiter.c
@@ -62,18 +62,17 @@ typedef struct AudioLimiterContext {
} AudioLimiterContext;
#define OFFSET(x) offsetof(AudioLimiterContext, x)
-#define A AV_OPT_FLAG_AUDIO_PARAM
-#define F AV_OPT_FLAG_FILTERING_PARAM
+#define AF AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_FILTERING_PARAM | AV_OPT_FLAG_RUNTIME_PARAM
static const AVOption alimiter_options[] = {
- { "level_in", "set input level", OFFSET(level_in), AV_OPT_TYPE_DOUBLE, {.dbl=1},.015625, 64, A|F },
- { "level_out", "set output level", OFFSET(level_out), AV_OPT_TYPE_DOUBLE, {.dbl=1},.015625, 64, A|F },
- { "limit", "set limit", OFFSET(limit), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.0625, 1, A|F },
- { "attack", "set attack", OFFSET(attack), AV_OPT_TYPE_DOUBLE, {.dbl=5}, 0.1, 80, A|F },
- { "release", "set release", OFFSET(release), AV_OPT_TYPE_DOUBLE, {.dbl=50}, 1, 8000, A|F },
- { "asc", "enable asc", OFFSET(auto_release), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, A|F },
- { "asc_level", "set asc level", OFFSET(asc_coeff), AV_OPT_TYPE_DOUBLE, {.dbl=0.5}, 0, 1, A|F },
- { "level", "auto level", OFFSET(auto_level), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1, A|F },
+ { "level_in", "set input level", OFFSET(level_in), AV_OPT_TYPE_DOUBLE, {.dbl=1},.015625, 64, AF },
+ { "level_out", "set output level", OFFSET(level_out), AV_OPT_TYPE_DOUBLE, {.dbl=1},.015625, 64, AF },
+ { "limit", "set limit", OFFSET(limit), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.0625, 1, AF },
+ { "attack", "set attack", OFFSET(attack), AV_OPT_TYPE_DOUBLE, {.dbl=5}, 0.1, 80, AF },
+ { "release", "set release", OFFSET(release), AV_OPT_TYPE_DOUBLE, {.dbl=50}, 1, 8000, AF },
+ { "asc", "enable asc", OFFSET(auto_release), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, AF },
+ { "asc_level", "set asc level", OFFSET(asc_coeff), AV_OPT_TYPE_DOUBLE, {.dbl=0.5}, 0, 1, AF },
+ { "level", "auto level", OFFSET(auto_level), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1, AF },
{ NULL }
};
@@ -339,4 +338,6 @@ const AVFilter ff_af_alimiter = {
FILTER_INPUTS(alimiter_inputs),
FILTER_OUTPUTS(alimiter_outputs),
FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_DBL),
+ .process_command = ff_filter_process_command,
+ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
};