Go to the documentation of this file. 26 #ifndef AVUTIL_TIMER_H 27 #define AVUTIL_TIMER_H 35 #if HAVE_MACH_MACH_TIME_H 36 #include <mach/mach_time.h> 51 #if !defined(AV_READ_TIME) 53 # define AV_READ_TIME gethrtime 54 # elif HAVE_MACH_ABSOLUTE_TIME 55 # define AV_READ_TIME mach_absolute_time 59 #ifndef FF_TIMER_UNITS 60 # define FF_TIMER_UNITS "UNITS" 66 uint64_t tstart = AV_READ_TIME(); \ 68 #define STOP_TIMER(id) \ 69 tend = AV_READ_TIME(); \ 71 static uint64_t tsum = 0; \ 72 static int tcount = 0; \ 73 static int tskip_count = 0; \ 74 static int thistogram[32] = {0}; \ 75 thistogram[av_log2(tend - tstart)]++; \ 77 tend - tstart < 8 * tsum / tcount || \ 78 tend - tstart < 2000) { \ 79 tsum+= tend - tstart; \ 83 if (((tcount + tskip_count) & (tcount + tskip_count - 1)) == 0) { \ 85 av_log(NULL, AV_LOG_ERROR, \ 86 "%7"PRIu64" " FF_TIMER_UNITS " in %s,%8d runs,%7d skips", \ 87 tsum * 10 / tcount, id, tcount, tskip_count); \ 88 for (i = 0; i < 32; i++) \ 89 av_log(NULL, AV_LOG_VERBOSE, " %2d", av_log2(2*thistogram[i]));\ 90 av_log(NULL, AV_LOG_ERROR, "\n"); \ 95 #define STOP_TIMER(id) { }