[FFmpeg-cvslog] lavu/timer.h: factor out timer report

Clément Bœsch git at videolan.org
Fri Sep 8 19:52:20 EEST 2017


ffmpeg | branch: master | Clément Bœsch <cboesch at gopro.com> | Sat Sep  2 19:17:45 2017 +0200| [9c0d823a7c2c29560f298a007289b9a63d0e3b87] | committer: Clément Bœsch

lavu/timer.h: factor out timer report

This commit is meant to reduce the diff in the following one.

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

 libavutil/timer.h | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/libavutil/timer.h b/libavutil/timer.h
index ed3b047870..da0761b607 100644
--- a/libavutil/timer.h
+++ b/libavutil/timer.h
@@ -60,23 +60,17 @@
 #   define FF_TIMER_UNITS "UNITS"
 #endif
 
-#ifdef AV_READ_TIME
-#define START_TIMER                             \
-    uint64_t tend;                              \
-    uint64_t tstart = AV_READ_TIME();           \
-
-#define STOP_TIMER(id)                                                    \
-    tend = AV_READ_TIME();                                                \
+#define TIMER_REPORT(id, tdiff)                                           \
     {                                                                     \
         static uint64_t tsum   = 0;                                       \
         static int tcount      = 0;                                       \
         static int tskip_count = 0;                                       \
         static int thistogram[32] = {0};                                  \
-        thistogram[av_log2(tend - tstart)]++;                             \
-        if (tcount < 2                        ||                          \
-            tend - tstart < 8 * tsum / tcount ||                          \
-            tend - tstart < 2000) {                                       \
-            tsum+= tend - tstart;                                         \
+        thistogram[av_log2(tdiff)]++;                                     \
+        if (tcount < 2                ||                                  \
+            (tdiff) < 8 * tsum / tcount ||                                \
+            (tdiff) < 2000) {                                             \
+            tsum += (tdiff);                                              \
             tcount++;                                                     \
         } else                                                            \
             tskip_count++;                                                \
@@ -90,6 +84,15 @@
             av_log(NULL, AV_LOG_ERROR, "\n");                             \
         }                                                                 \
     }
+
+#ifdef AV_READ_TIME
+#define START_TIMER                             \
+    uint64_t tend;                              \
+    uint64_t tstart = AV_READ_TIME();           \
+
+#define STOP_TIMER(id)                                                    \
+    tend = AV_READ_TIME();                                                \
+    TIMER_REPORT(id, tend - tstart)
 #else
 #define START_TIMER
 #define STOP_TIMER(id) { }



More information about the ffmpeg-cvslog mailing list