[FFmpeg-cvslog] avfilter/af_astats: reset stats prior not after filtering

Paul B Mahol git at videolan.org
Wed Feb 24 22:33:53 CET 2016


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Wed Feb 24 22:10:32 2016 +0100| [c09248aecd0d3f03064387734094ec75a23e1078] | committer: Paul B Mahol

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 at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c09248aecd0d3f03064387734094ec75a23e1078
---

 libavfilter/af_astats.c |   17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/libavfilter/af_astats.c b/libavfilter/af_astats.c
index b3b8f28..70ec28a 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);
 }
 



More information about the ffmpeg-cvslog mailing list