Skip to content

Commit

Permalink
avfilter/af_astats: fix possible crash because of undefined float to …
Browse files Browse the repository at this point in the history
…integer rounding

Fixes ticket #9049.

Signed-off-by: Marton Balint <[email protected]>
  • Loading branch information
cus committed Jan 23, 2021
1 parent 16766bf commit c8e1e56
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions libavfilter/af_astats.c
Original file line number Diff line number Diff line change
Expand Up @@ -329,11 +329,11 @@ static inline void update_stat(AudioStatsContext *s, ChannelStats *p, double d,

drop = p->win_samples[p->win_pos];
p->win_samples[p->win_pos] = nd;
index = av_clip(FFABS(av_clipd(nd, -1.0, 1.0)) * HISTOGRAM_MAX, 0, HISTOGRAM_MAX);
index = av_clip(lrint(av_clipd(FFABS(nd), 0.0, 1.0) * HISTOGRAM_MAX), 0, HISTOGRAM_MAX);
p->max_index = FFMAX(p->max_index, index);
p->histogram[index]++;
if (!isnan(p->noise_floor))
p->histogram[av_clip(FFABS(drop) * HISTOGRAM_MAX, 0, HISTOGRAM_MAX)]--;
p->histogram[av_clip(lrint(av_clipd(FFABS(drop), 0.0, 1.0) * HISTOGRAM_MAX), 0, HISTOGRAM_MAX)]--;
p->win_pos++;

while (p->histogram[p->max_index] == 0)
Expand Down

0 comments on commit c8e1e56

Please sign in to comment.