diff options
author | Paul B Mahol <onemda@gmail.com> | 2016-02-24 22:10:32 +0100 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2016-02-24 22:32:26 +0100 |
commit | c09248aecd0d3f03064387734094ec75a23e1078 (patch) | |
tree | 21eb552cac9ce00214c34b9a2c844cb68edd389b /libavfilter/af_astats.c | |
parent | 5870f2a1dc46d439669087951656c8dfec2cecbe (diff) | |
download | ffmpeg-c09248aecd0d3f03064387734094ec75a23e1078.tar.gz |
avfilter/af_astats: reset stats prior not after filtering
This way stats printed at uninit are also useful.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavfilter/af_astats.c')
-rw-r--r-- | libavfilter/af_astats.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libavfilter/af_astats.c b/libavfilter/af_astats.c index b3b8f2818c..70ec28a50f 100644 --- a/libavfilter/af_astats.c +++ b/libavfilter/af_astats.c @@ -119,6 +119,7 @@ static int config_output(AVFilterLink *outlink) s->nb_channels = outlink->channels; s->mult = exp((-1 / s->time_constant / outlink->sample_rate)); s->tc_samples = 5 * s->time_constant * outlink->sample_rate + .5; + s->nb_frames = 0; reset_stats(s); @@ -269,6 +270,14 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) const double *src; int i, c; + if (s->reset_count > 0) { + if (s->nb_frames >= s->reset_count) { + reset_stats(s); + s->nb_frames = 0; + } + s->nb_frames++; + } + switch (inlink->format) { case AV_SAMPLE_FMT_DBLP: for (c = 0; c < channels; c++) { @@ -292,14 +301,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) if (s->metadata) set_metadata(s, metadata); - if (s->reset_count > 0) { - s->nb_frames++; - if (s->nb_frames >= s->reset_count) { - reset_stats(s); - s->nb_frames = 0; - } - } - return ff_filter_frame(inlink->dst->outputs[0], buf); } |