61 #define SILK_TIC_TOC 0 66 #if (defined(_WIN32) || defined(_WINCE)) 90 #define silk_NUM_TIMERS_MAX 50 92 #define silk_NUM_TIMERS_MAX_TAG_LEN 30 94 extern int silk_Timer_nTimers;
95 extern int silk_Timer_depth_ctr;
96 extern char silk_Timer_tags[silk_NUM_TIMERS_MAX][silk_NUM_TIMERS_MAX_TAG_LEN];
98 extern LARGE_INTEGER silk_Timer_start[silk_NUM_TIMERS_MAX];
100 extern unsigned long silk_Timer_start[silk_NUM_TIMERS_MAX];
102 extern unsigned int silk_Timer_cnt[silk_NUM_TIMERS_MAX];
103 extern opus_int64 silk_Timer_sum[silk_NUM_TIMERS_MAX];
104 extern opus_int64 silk_Timer_max[silk_NUM_TIMERS_MAX];
105 extern opus_int64 silk_Timer_min[silk_NUM_TIMERS_MAX];
106 extern opus_int64 silk_Timer_depth[silk_NUM_TIMERS_MAX];
110 #define TIC(TAG_NAME) { \ 111 static int init = 0; \ 112 static int ID = -1; \ 117 for( k = 0; k < silk_Timer_nTimers; k++ ) { \ 118 if( strcmp(silk_Timer_tags[k], #TAG_NAME) == 0 ) { \ 124 ID = silk_Timer_nTimers; \ 125 silk_Timer_nTimers++; \ 126 silk_Timer_depth[ID] = silk_Timer_depth_ctr; \ 127 strcpy(silk_Timer_tags[ID], #TAG_NAME); \ 128 silk_Timer_cnt[ID] = 0; \ 129 silk_Timer_sum[ID] = 0; \ 130 silk_Timer_min[ID] = 0xFFFFFFFF; \ 131 silk_Timer_max[ID] = 0; \ 134 silk_Timer_depth_ctr++; \ 135 QueryPerformanceCounter(&silk_Timer_start[ID]); \ 138 #define TIC(TAG_NAME) { \ 139 static int init = 0; \ 140 static int ID = -1; \ 145 for( k = 0; k < silk_Timer_nTimers; k++ ) { \ 146 if( strcmp(silk_Timer_tags[k], #TAG_NAME) == 0 ) { \ 152 ID = silk_Timer_nTimers; \ 153 silk_Timer_nTimers++; \ 154 silk_Timer_depth[ID] = silk_Timer_depth_ctr; \ 155 strcpy(silk_Timer_tags[ID], #TAG_NAME); \ 156 silk_Timer_cnt[ID] = 0; \ 157 silk_Timer_sum[ID] = 0; \ 158 silk_Timer_min[ID] = 0xFFFFFFFF; \ 159 silk_Timer_max[ID] = 0; \ 162 silk_Timer_depth_ctr++; \ 163 silk_Timer_start[ID] = GetHighResolutionTime(); \ 168 #define TOC(TAG_NAME) { \ 169 LARGE_INTEGER lpPerformanceCount; \ 170 static int init = 0; \ 176 for( k = 0; k < silk_Timer_nTimers; k++ ) { \ 177 if( strcmp(silk_Timer_tags[k], #TAG_NAME) == 0 ) { \ 183 QueryPerformanceCounter(&lpPerformanceCount); \ 184 lpPerformanceCount.QuadPart -= silk_Timer_start[ID].QuadPart; \ 185 if((lpPerformanceCount.QuadPart < 100000000) && \ 186 (lpPerformanceCount.QuadPart >= 0)) { \ 187 silk_Timer_cnt[ID]++; \ 188 silk_Timer_sum[ID] += lpPerformanceCount.QuadPart; \ 189 if( lpPerformanceCount.QuadPart > silk_Timer_max[ID] ) \ 190 silk_Timer_max[ID] = lpPerformanceCount.QuadPart; \ 191 if( lpPerformanceCount.QuadPart < silk_Timer_min[ID] ) \ 192 silk_Timer_min[ID] = lpPerformanceCount.QuadPart; \ 194 silk_Timer_depth_ctr--; \ 197 #define TOC(TAG_NAME) { \ 198 unsigned long endTime; \ 199 static int init = 0; \ 205 for( k = 0; k < silk_Timer_nTimers; k++ ) { \ 206 if( strcmp(silk_Timer_tags[k], #TAG_NAME) == 0 ) { \ 212 endTime = GetHighResolutionTime(); \ 213 endTime -= silk_Timer_start[ID]; \ 214 if((endTime < 100000000) && \ 216 silk_Timer_cnt[ID]++; \ 217 silk_Timer_sum[ID] += endTime; \ 218 if( endTime > silk_Timer_max[ID] ) \ 219 silk_Timer_max[ID] = endTime; \ 220 if( endTime < silk_Timer_min[ID] ) \ 221 silk_Timer_min[ID] = endTime; \ 223 silk_Timer_depth_ctr--; \ 230 #define TIC(TAG_NAME) 231 #define TOC(TAG_NAME) 232 #define silk_TimerSave(FILE_NAME) 243 #define silk_NUM_STORES_MAX 100 244 extern FILE *silk_debug_store_fp[ silk_NUM_STORES_MAX ];
245 extern int silk_debug_store_count;
248 #define DEBUG_STORE_DATA( FILE_NAME, DATA_PTR, N_BYTES ) { \ 249 static opus_int init = 0, cnt = 0; \ 253 cnt = silk_debug_store_count++; \ 254 silk_debug_store_fp[ cnt ] = fopen(#FILE_NAME, "wb"); \ 256 fwrite((DATA_PTR), (N_BYTES), 1, silk_debug_store_fp[ cnt ]); \ 260 #define SILK_DEBUG_STORE_CLOSE_FILES { \ 262 for( i = 0; i < silk_debug_store_count; i++ ) { \ 263 fclose( silk_debug_store_fp[ i ] ); \ 270 #define DEBUG_STORE_DATA(FILE_NAME, DATA_PTR, N_BYTES) 271 #define SILK_DEBUG_STORE_CLOSE_FILES
unsigned long GetHighResolutionTime(void)
#define opus_int64
Definition: opus_types.h:152
#define silk_TimerSave(FILE_NAME)
Definition: debug.h:232