]> git.sesse.net Git - ffmpeg/commitdiff
avfilter/vf_vfrdet: also report average delta
authorPaul B Mahol <onemda@gmail.com>
Tue, 29 Oct 2019 12:05:31 +0000 (13:05 +0100)
committerPaul B Mahol <onemda@gmail.com>
Tue, 29 Oct 2019 12:07:08 +0000 (13:07 +0100)
doc/filters.texi
libavfilter/vf_vfrdet.c

index c4477e6677becf81bf4dcdb49e4bee6ae52894b0..11f715319a8d657be41e2a9a5671a30f2efea00d 100644 (file)
@@ -18946,8 +18946,8 @@ This filter tries to detect if the input is variable or constant frame rate.
 
 At end it will output number of frames detected as having variable delta pts,
 and ones with constant delta pts.
-If there was frames with variable delta, than it will also show min and max delta
-encountered.
+If there was frames with variable delta, than it will also show min, max and
+average delta encountered.
 
 @section vibrance
 
index 051b53babd192b4f0026351201d033138ddd079a..abfa19cdcdedc2475cab70b27ee933776454c1e3 100644 (file)
@@ -29,6 +29,7 @@ typedef struct VFRDETContext {
     int64_t delta;
     int64_t min_delta;
     int64_t max_delta;
+    int64_t avg_delta;
 
     uint64_t vfr;
     uint64_t cfr;
@@ -53,6 +54,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
             s->delta = delta;
             s->min_delta = FFMIN(delta, s->min_delta);
             s->max_delta = FFMAX(delta, s->max_delta);
+            s->avg_delta += delta;
         } else {
             s->cfr++;
         }
@@ -81,7 +83,7 @@ static av_cold void uninit(AVFilterContext *ctx)
 
     av_log(ctx, AV_LOG_INFO, "VFR:%f (%"PRIu64"/%"PRIu64")", s->vfr / (float)(s->vfr + s->cfr), s->vfr, s->cfr);
     if (s->vfr)
-        av_log(ctx, AV_LOG_INFO, " min: %"PRId64" max: %"PRId64")", s->min_delta, s->max_delta);
+        av_log(ctx, AV_LOG_INFO, " min: %"PRId64" max: %"PRId64" avg: %"PRId64, s->min_delta, s->max_delta, s->avg_delta / s->vfr);
     av_log(ctx, AV_LOG_INFO, "\n");
 }