Commit 39c61d84 authored by Paul B Mahol's avatar Paul B Mahol

avfilter: add audio limiter filter

Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
parent a0a2ca02
......@@ -5,6 +5,7 @@ version <next>:
- DXV decoding
- extrastereo filter
- ocr filter
- alimiter filter
version 2.8:
......
......@@ -641,6 +641,41 @@ Force the output to either unsigned 8-bit or signed 16-bit stereo
aformat=sample_fmts=u8|s16:channel_layouts=stereo
@end example
@section alimiter
The limiter prevents input signal from raising over a desired threshold.
This limiter uses lookahead technology to prevent your signal from distorting.
It means that there is a small delay after signal is processed. Keep in mind
that the delay it produces is the attack time you set.
The filter accepts the following options:
@table @option
@item limit
Don't let signals above this level pass the limiter. The removed amplitude is
added automatically. Default is 1.
@item attack
The limiter will reach its attenuation level in this amount of time in
milliseconds. Default is 5 milliseconds.
@item release
Come back from limiting to attenuation 1.0 in this amount of milliseconds.
Default is 50 milliseconds.
@item asc
When gain reduction is always needed ASC takes care of releasing to an
average reduction level rather than reaching a reduction of 0 in the release
time.
@item asc_level
Select how much the release time is affected by ASC, 0 means nearly no changes
in release time while 1 produces higher release times.
@end table
Depending on picked setting it is recommended to upsample input 2x or 4x times
with @ref{aresample} before applying this filter.
@section allpass
Apply a two-pole all-pass filter with central frequency (in Hz)
......
......@@ -30,6 +30,7 @@ OBJS-$(CONFIG_AEVAL_FILTER) += aeval.o
OBJS-$(CONFIG_AFADE_FILTER) += af_afade.o
OBJS-$(CONFIG_AFORMAT_FILTER) += af_aformat.o
OBJS-$(CONFIG_AINTERLEAVE_FILTER) += f_interleave.o
OBJS-$(CONFIG_ALIMITER_FILTER) += af_alimiter.o
OBJS-$(CONFIG_ALLPASS_FILTER) += af_biquads.o
OBJS-$(CONFIG_AMERGE_FILTER) += af_amerge.o
OBJS-$(CONFIG_AMIX_FILTER) += af_amix.o
......
This diff is collapsed.
......@@ -52,6 +52,7 @@ void avfilter_register_all(void)
REGISTER_FILTER(AFADE, afade, af);
REGISTER_FILTER(AFORMAT, aformat, af);
REGISTER_FILTER(AINTERLEAVE, ainterleave, af);
REGISTER_FILTER(ALIMITER, alimiter, af);
REGISTER_FILTER(ALLPASS, allpass, af);
REGISTER_FILTER(AMERGE, amerge, af);
REGISTER_FILTER(AMIX, amix, af);
......
......@@ -30,7 +30,7 @@
#include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 6
#define LIBAVFILTER_VERSION_MINOR 2
#define LIBAVFILTER_VERSION_MINOR 3
#define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment