| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -28,6 +28,7 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#include <stdlib.h> | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#include <stdint.h> | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#include "config.h" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#if   ARCH_ARM | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -45,29 +46,32 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#ifdef AV_READ_TIME | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#define START_TIMER \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			uint64_t tend;\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			uint64_t tstart= 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 < 8*tsum/tcount || tend - tstart < 2000){\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        tsum+= tend - tstart;\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        tcount++;\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }else\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        tskip_count++;\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if(((tcount+tskip_count)&(tcount+tskip_count-1))==0){\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_log(NULL, AV_LOG_ERROR, "%"PRIu64" decicycles in %s, %d runs, %d skips\n",\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			               tsum*10/tcount, id, tcount, tskip_count);\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    }\ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#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 < 8 * tsum / tcount ||                          \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            tend - tstart < 2000) {                                       \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            tsum+= tend - tstart;                                         \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            tcount++;                                                     \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } else                                                            \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            tskip_count++;                                                \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (((tcount + tskip_count) & (tcount + tskip_count - 1)) == 0) { \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            av_log(NULL, AV_LOG_ERROR,                                    \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                   "%"PRIu64" decicycles in %s, %d runs, %d skips\n",     \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                   tsum * 10 / tcount, id, tcount, tskip_count);          \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }                                                                 \ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#define START_TIMER | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#define STOP_TIMER(id) {} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#define STOP_TIMER(id) { } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#endif | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			#endif /* AVUTIL_TIMER_H */ |