diff options
author | Aurelien Jacobs <aurel@gnuage.org> | 2009-01-15 22:58:35 +0000 |
---|---|---|
committer | Aurelien Jacobs <aurel@gnuage.org> | 2009-01-15 22:58:35 +0000 |
commit | 2f5421d513ea2e65749c9bfaf03514b3ffc3d6d1 (patch) | |
tree | 3e51b3e80e9bdc51aea922306031764ffbdbc263 /libavutil/common.h | |
parent | ca93bc175acb4e1f883e9c2029ea68c620e7c549 (diff) | |
download | ffmpeg-2f5421d513ea2e65749c9bfaf03514b3ffc3d6d1.tar.gz |
move timer related code in a new timer.h file
Originally committed as revision 16618 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavutil/common.h')
-rw-r--r-- | libavutil/common.h | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/libavutil/common.h b/libavutil/common.h index ddeecad7dc..a8fd922145 100644 --- a/libavutil/common.h +++ b/libavutil/common.h @@ -323,79 +323,6 @@ static inline av_pure int ff_get_fourcc(const char *s){ }\ } -#if ARCH_X86 || ARCH_PPC || ARCH_BFIN -#define AV_READ_TIME read_time -#if ARCH_X86 -static inline uint64_t read_time(void) -{ - uint32_t a, d; - __asm__ volatile("rdtsc\n\t" - : "=a" (a), "=d" (d)); - return ((uint64_t)d << 32) + a; -} -#elif ARCH_BFIN -static inline uint64_t read_time(void) -{ - union { - struct { - unsigned lo; - unsigned hi; - } p; - unsigned long long c; - } t; - __asm__ volatile ("%0=cycles; %1=cycles2;" : "=d" (t.p.lo), "=d" (t.p.hi)); - return t.c; -} -#else //FIXME check ppc64 -static inline uint64_t read_time(void) -{ - uint32_t tbu, tbl, temp; - - /* from section 2.2.1 of the 32-bit PowerPC PEM */ - __asm__ volatile( - "1:\n" - "mftbu %2\n" - "mftb %0\n" - "mftbu %1\n" - "cmpw %2,%1\n" - "bne 1b\n" - : "=r"(tbl), "=r"(tbu), "=r"(temp) - : - : "cc"); - - return (((uint64_t)tbu)<<32) | (uint64_t)tbl; -} -#endif -#elif HAVE_GETHRTIME -#define AV_READ_TIME gethrtime -#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();\ -{\ - static uint64_t tsum=0;\ - static int tcount=0;\ - static int tskip_count=0;\ - if(tcount<2 || tend - tstart < FFMAX(8*tsum/tcount, 2000)){\ - tsum+= tend - tstart;\ - tcount++;\ - }else\ - tskip_count++;\ - if(((tcount+tskip_count)&(tcount+tskip_count-1))==0){\ - av_log(NULL, AV_LOG_ERROR, "%"PRIu64" dezicycles in %s, %d runs, %d skips\n",\ - tsum*10/tcount, id, tcount, tskip_count);\ - }\ -} -#else -#define START_TIMER -#define STOP_TIMER(id) {} -#endif - /** * Returns NULL if CONFIG_SMALL is true otherwise the argument * without modifications, used to disable the definition of strings |