Commit 297df52f authored by Paul B Mahol's avatar Paul B Mahol

avfilter/af_compand: fix clipping with default options

Decays and attacks where by default set only for first channel
which caused poor defaults to be used which produced clipping
on any higher channel.

Reported-by: lachs0r
Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
parent 21436b95
......@@ -1462,6 +1462,8 @@ situations, the attack time (response to the audio getting louder) should be
shorter than the decay time, because the human ear is more sensitive to sudden
loud audio than sudden soft audio. A typical value for attack is 0.3 seconds and
a typical value for decay is 0.8 seconds.
If specified number of attacks & decays is lower than number of channels, the last
set attack/decay will be used for all remaining channels.
@item points
A list of points for the transfer function, specified in dB relative to the
......
......@@ -398,6 +398,11 @@ static int config_output(AVFilterLink *outlink)
return AVERROR(EINVAL);
}
for (i = nb_decays; i < channels; i++) {
s->channels[i].attack = s->channels[nb_decays - 1].attack;
s->channels[i].decay = s->channels[nb_decays - 1].decay;
}
#define S(x) s->segments[2 * ((x) + 1)]
p = s->points;
for (i = 0, new_nb_items = 0; i < nb_points; i++) {
......
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