mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
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: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
21436b95dc
commit
297df52f30
@ -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++) {
|
||||
|
Loading…
Reference in New Issue
Block a user