[FFmpeg-cvslog] avfilter/af_astats: make sure p-> last is actually always set when measuring max difference

Paul B Mahol git at videolan.org
Thu Jul 16 17:16:09 CEST 2015


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Wed Jul 15 19:24:37 2015 +0000| [51925daafda9bbd7aba40d23b124ea967552e6dd] | committer: Paul B Mahol

avfilter/af_astats: make sure p->last is actually always set when measuring max difference

Signed-off-by: Paul B Mahol <onemda at gmail.com>

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

 libavfilter/af_astats.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavfilter/af_astats.c b/libavfilter/af_astats.c
index 81cede1..0e8c3e2 100644
--- a/libavfilter/af_astats.c
+++ b/libavfilter/af_astats.c
@@ -104,6 +104,7 @@ static void reset_stats(AudioStatsContext *s)
 
         p->min = p->min_sigma_x2 = DBL_MAX;
         p->max = p->max_sigma_x2 = DBL_MIN;
+        p->max_diff = -1;
     }
 }
 
@@ -161,7 +162,7 @@ static inline void update_stat(AudioStatsContext *s, ChannelStats *p, double d)
     p->sigma_x += d;
     p->sigma_x2 += d * d;
     p->avg_sigma_x2 = p->avg_sigma_x2 * s->mult + (1.0 - s->mult) * d * d;
-    p->max_diff = FFMAX(p->max_diff, FFABS(d - p->last));
+    p->max_diff = FFMAX(p->max_diff, FFABS(d - (p->max_diff == -1 ? d : p->last)));
     p->last = d;
     p->mask |= llrint(d * (1LLU<<63));
 



More information about the ffmpeg-cvslog mailing list